This invention relates to memory elements, and more particularly, to memory element reading circuitry with leakage current compensation.
Integrated circuits often contain volatile memory elements. Typical volatile memory elements are based on cross-coupled inverters (latches) and are used to store data. Each memory element can store a single bit of data. In integrated circuits such as programmable logic device integrated circuits, volatile memory elements are used to store configuration data.
Memory elements are typically arranged in arrays. Data may be loaded into the memory elements of the array and may be read from the memory elements of the array using data lines. There is typically a data line associated with each row or column of the array.
An output latch at the end of each data line may be used in conveying data signals from the data line to circuitry outside of the memory array. The output latch may include a pair of cross-coupled inverters. One of the cross-coupled inverters may be directed outwards and may drive data from the data line onto an output terminal. The other of the cross-coupled inverters may be directed inwards and may feed the output terminal signal back onto the data line. During read operations, a memory element of interest is addressed using an address signal. The data bit on this memory elements is driven onto the data line and, through the outwardly-directed inverter of the output latch, is driven in inverted form onto the output terminal.
Each data line is typically connected to numerous memory elements, each of which potentially has a non-negligible amount of associated leakage current. A p-channel metal-oxide-semiconductor pull-up transistor in the inwardly-directed inverter of the output latch can be used to help pull the data line high when the signal on the output terminal is low. Proper operation of the memory array circuitry depends on the ability to select a suitable strength for this pull-up transistor. If the pull-up transistor is made too strong, it may not be possible to drive a stored “zero” data bit from an addressed memory element onto the data line. If the pull-up transistor is made too weak, leakage currents from the memory elements that are associated with the data line may overwhelm the pull-up transistor and pull the data line to ground. In this situation, it may not be possible to drive a stored “one” data bit from an addressed memory element onto the data line.
As integrated circuit technology advances, it is becoming increasingly desirable to reduce transistor linewidths and to reduce the power supply voltages used on a circuit. These advances may help to improve the power consumption on an integrated circuit while allowing for increases in transistor density. Nevertheless, integrated circuits with reduced power supply voltages are increasingly susceptible to manufacturing and operating parameter variations. Conventional memory array arrangements may provide insufficient margin to accommodate these variations when implemented using modern integrated circuit technology. For example, it may be difficult or impossible to appropriately size pull-up transistors in memory array output latches using conventional designs.
It would therefore be desirable to be able to provide improved memory element reading circuitry for integrated circuits.
In accordance with the present invention, integrated circuits are provided with arrays of memory elements. The memory elements may each have a pair of cross-coupled inverters. Data lines may be used to load data into the memory elements and may be used to read data from the memory elements. Each memory element may have an address transistor. The address transistors may be used to selectively route data from the memory elements to the data lines.
The memory elements may be used to store data. For example, the memory elements may be used to store configuration data on a programmable logic device integrated circuit. In this type of scenario, each memory element may have an output that supplies the gate of a respective programmable transistor with a static control signal. The programmable transistors may make up programmable core logic on a programmable logic device integrated circuit.
Data reading circuitry may be coupled to each data line to read data from an addressed memory element on that data line. The data reading circuitry for each data line may include a precharge transistor and an output latch. The output latch may contain cross-coupled inverters. An outwardly-directed inverter in the output latch may be used to drive data signals that are being read onto an output line. An inwardly-directed inverter in the output latch may be used to feed back signals from the output line to the data line. The inwardly-directed inverter may be formed from an n-channel metal-oxide transistor and a p-channel metal-oxide-semiconductor transistor. The p-channel metal-oxide-semiconductor transistor may serve as a pull-up transistor that pulls the data line to a positive power supply voltage when the output line is at a logic high level. A current source may be connected in series with the p-channel metal-oxide-semiconductor pull-up transistor. A transistor may be connected in parallel with the current source.
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 memory elements and integrated circuits that contain memory elements. The invention also relates to circuits for loading data into memory elements and for reading data out of memory elements. Memory element data may be read to confirm that the data has been loaded properly or for other purposes.
The integrated circuits that contain the memory elements 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 circuits. For clarity, the present invention will sometimes be described in the context of programmable logic device integrated circuits in which volatile memory elements are used to store configuration data. This is, however, merely illustrative. The memory elements and memory element circuitry of the invention may be used in the context of any suitable integrated circuits.
Programmable logic device integrated circuits use programmable memory elements to store configuration data. During the programming of a programmable logic device, configuration data is loaded into the memory elements. During operation of the programmable logic device, each memory element provides a static output signal. The static output signals that are supplied by the memory elements serve as control signals. These control signals are applied to programmable logic on the integrated circuit to customize the programmable logic to perform a desired logic function. In a typical arrangement, each static output signal serves as a gate control signal that is applied to the gate of an n-channel or p-channel metal-oxide-semiconductor transistor.
The programmable logic in which the n-channel and p-channel transistors are contained makes up part of the logic core of the programmable logic device and is therefore sometimes referred to as programmable core logic. Core logic is powered using a positive power supply voltage that is generally referred to as Vcc and a ground voltage that is generally referred to as Vss. Typical Vcc and Vss values are 1.0 volts and 0 volts, respectively. It is expected that advances in semiconductor technology will allow smaller power supply voltages to be used in future integrated circuits, so Vcc values of less than 1.0 volts may be used. Values of Vcc larger than 1.0 volts and non-zero ground voltages Vss may also be used in an integrated circuit if desired.
To reduce power consumption, there is an ongoing trend in the semiconductor industry to reduce the magnitude of the power supply voltages that are used. Reducing power supply voltages may help to reduce power consumption, but can lead to design challenges. For example, reduced power supply voltages can lead to challenges in fabricating reliable memory array circuitry. In accordance with the present invention, additional design margin may be provided for memory array read circuitry, even in circuits that use reduced power supply voltages.
The memory array circuitry may be formed on any suitable integrated circuit. For example, the memory array circuitry may be formed on a programmable logic device integrated circuit. An illustrative integrated circuit on which the memory array circuitry may be formed is programmable logic device integrated circuit 10 of
As shown in
Programmable logic device 10 contains memory elements 20 that can be loaded with configuration data (also called programming data) using pins 14 and input/output circuitry 12. 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. Some of the transistors may be p-channel metal-oxide-semiconductor (PMOS) 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, an NMOS pass transistor controlled by that memory element will be turned on to pass 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.
A typical memory element 20 is formed from a number of transistors configured to form cross-coupled inverters. With one suitable approach, complementary metal-oxide-semiconductor (CMOS) integrated circuit technology is used to form the memory elements 20, so CMOS-based memory element implementations are described herein as an example. 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.
The memory elements may be loaded from any suitable source. With one illustrative arrangement, the memory elements are loaded from an external erasable-programmable read-only memory and control chip called a configuration device via pins 14 and input/output circuitry 12.
The memory elements 20 are generally arranged in an array pattern. In a typical modern programmable logic device, there may be millions of memory elements 20 on each chip. During programming operations, the array of memory elements is provided with configuration data. Once loaded with configuration data, the memory elements 20 selectively control portions of the circuitry in the programmable logic 18 and thereby customize its functions so that it will operate as desired. Data may be read from the array of memory elements using read circuitry. For example, configuration data may be read back from the memory elements following programming to verify that a programmable logic device has been programmed correctly.
The circuitry of device 10 may be organized using any suitable architecture. As an example, the logic of programmable logic device 10 may be organized in a series of rows and columns of larger programmable logic regions each of which contains multiple smaller logic regions. The logic resources of device 10 may be interconnected by interconnection resources 16 such as associated vertical and horizontal conductors. These conductors may include global conductive lines that span substantially all of device 10, fractional lines such as half-lines or quarter lines that span part of device 10, staggered lines of a particular length (e.g., sufficient to interconnect several logic areas), smaller local lines, or any other suitable interconnection resource arrangement. If desired, the logic of device 10 may be arranged in more levels or layers in which multiple large regions are interconnected to form still larger portions of logic. Still other device arrangements may use logic that is not arranged in rows and columns.
When memory elements are arranged in an array, horizontal and vertical conductors and associated circuitry may be used to load the memory elements with configuration data and may be used to read data from the memory elements. An illustrative arrangement for data loading and data reading on device 10 is shown in
As shown in
Configuration data may be provided in series to registers in data line circuitry 30 via input 32. During data writing operations, the configuration data may be provided in parallel to array 22 via the DL1, DL2, and DL3 data lines 26. During data read operations, data may be read from array 22 via the data lines 26.
Address decoder circuitry in address circuitry 34 may receive addressing information via input 44 during data writing and data reading operations. In response, the address decoder may assert a desired one of the address lines 28 (i.e., ADD1, ADD2, or ADD3). When an address line is asserted in a given column during data write operations, the data on the data lines 26 is loaded into the memory elements 20 in that column. The array may be filled by systematically loading the memory elements in each of the columns of the array. After the array has been completely loaded with configuration data, the static control output 42 of each memory element 20 produces a corresponding static control signal for controlling the gate of a pass transistor or other logic component on the programmable logic device (e.g., a pass transistor such as pass transistor 64). When an address line is asserted in a given column during data read operations, data from the memory elements in the addressed column is driven onto the data lines 26. Data line output latches and other read circuitry in data line circuitry 30 may be used in handling the data signals from data lines 26.
A memory element 20 of the type that may be used in array 22 of
When address line 28 is taken high during a write operation, NMOS address transistor 58 is turned on and the signal DL on data line 26 is driven into the memory element 20. The stored data bit in memory element 20 is represented by signal DATA in
The NDATA control signal is applied to the gate 62 of pass transistor 64. When NDATA is low, pass transistor 64 is off. When NDATA is high, pass transistor 64 is on and data is allowed to flow between line 66 and line 68.
Read circuitry 78 typically includes a precharge transistor 72 and an output latch 80. Prior to reading the voltage on data line 74, precharge transistor 72 is turned on by taking signal PRECHARGE low. This connects terminal 70 to line 74 and pulls the voltage on line 74 high to a positive voltage supplied on terminal 70.
Output latch 80 contains an outwardly-directed inverter 82 that drives data signals DL from line 74 onto output line 86 as inverted output signals OUT. Cross-coupled inverter 84 is used to feed signal OUT back onto line 74. Inverter 84 is inwardly-directed, because it drives signals onto line 74 from output line 86. Inverter 84 includes PMOS transistor M2 and NMOS transistor M3. The PMOS transistor M2 is connected to positive power supply terminal 88 and serves as a pull-up transistor for data line 74. In a typical scenario, positive power supply terminals 70 and 88 are connected to a source of positive voltage Vcc1 (e.g., a voltage equal to Vcc).
Proper design of the output latch 80 requires that the PMOS pull-up transistor M2 be constructed with the proper strength. If M2 is too strong, it will not be possible to drive a DATA signal from an addressed memory element 20 onto data line 74 during a read operation. If M2 is too weak, memory element leakage currents will overwhelm M2, producing erroneous results at output OUT during read operations. Transistor M2 has a drain-source current of Ics. During programming, the memory element on line 74 that has been addressed and whose address transistor is turned on will draw a current of Icr_pd. The proper strength for pull-up transistor M2 is one that maintains current Ics greater than leakage current Icr_lk and less than memory element current Icr_pd.
The graphs of
At time t1, signal PRECHARGE is taken low, as shown in
As shown in
If transistor M2 is too weak relative to the leakage current Icr_lk, the voltage DL will fall according to dashed line 90 of
If, on the other hand, transistor M2 is not too weak relative to the memory element leakage currents on line 74, the voltage DL will fall according to solid line 94 of
As the discussion of
The graphs of
At time t1, signal PRECHARGE is taken low, as shown in
As shown in
Between times t3 and t5, address signal ADD (
If pull-up transistor M2 is sized correctly relative to the memory element that is being read (i.e., if Ics is less than Icr_pd so that the strength of M2 is correct relative to the strength of the inverter in the memory cell that is supplying signal DATA, the signal DL on line 74 will be pulled down by the memory element at times after time t3, as indicated by solid line 96. When DL is pulled below RD_TRIP at time t4, output OUT will go high, as shown by solid line 98 in
If, on the other hand, pull-up transistor M2 is sized incorrectly relative to the memory element (i.e., M2 is too strong relative to the memory element so that current Ics is greater than the current Icr_pd), the signal DL on line 74 will not be pulled lower than RD_TRIP following assertion of the address signal at t3, as indicated by dotted line 100 in
As the discussion of
To ensure accurate read operations, the designer of a conventional read circuit of the type shown in
In accordance with an embodiment of the present invention, read circuitry is provided that is able to reliably read data signals from memory elements even in challenging circuit environments. Illustrative circuitry 104 in accordance with an embodiment of the present invention is shown in
Data line 26 may provide data signals DL that are read using read circuitry 122. Precharge transistor 72 may connected between positive power supply terminal 70 and data line 26. Power supply terminal 70 may be powered at a suitable positive power supply level. For example, power supply terminal 70 may be powered at a voltage Vcc1 that is greater than or equal to core logic power supply voltage Vcc during read operations.
Memory elements 20 are coupled to data line 26 through respective address transistors 58 (
Read circuitry 122 may include precharge transistor 72 and output latch 120. Prior to reading the voltage on data line 26, precharge transistor 72 is turned on by taking signal PRECHARGE low on the gate of transistor 72. This connects terminal 70 to line 26 and pulls the voltage on line 26 high to the positive voltage Vcc1 that is supplied on terminal 70.
Output latch 80 contains an outwardly-directed inverter 108 that drives data signals DL from line 26 onto output line 106 as inverted output signals OUT. Cross-coupled inverter 110 is used to feed signal OUT back onto line 26. Inverter 110 is inwardly-directed, because it drives signals onto line 26 from output line 106. Inverter 110 may include PMOS transistor M2 and NMOS transistor M3. The PMOS transistor M2 is connected to positive power supply terminal 114 and serves as a pull-up transistor for data line 26. Power supply terminal 114 may be powered at a suitable positive power supply level such as a voltage Vcc1 that is greater than or equal to core logic power supply voltage Vcc during read operations.
Current source 112 provides a fixed value of current Io. Current source 112 may be connected to one of the source-drain terminals of transistor M2. The other source-drain terminal of transistor M2 may be connected to node 116. Because current source 112 is connected in series with transistor M2, the source-drain current of transistor M2 is fixed at Io (i.e., Ics of transistor M2 is forced to assume the value Io due to the operation of current source 112). By proper selection of the current source magnitude Io, the magnitude of current Ics can be stabilized at a known desired value over a wide range of process and operating parameter conditions. This allows current Ics to be reliably maintained at a level that is greater than Icr_lk and less than the amount of current produced by a given addressed memory element during a read operation (Icr_pd).
Illustrative current source circuits that may be used to implement current source 112 of
In the current source 112 of
Current source 112 of
Current sources 112 of
In the arrangements of
The operation of a conventional read circuit arrangement of the type shown in
The graphs of
As described in connection with the timing diagrams of
An appropriately-selected RD_TRIP value such as this will ensure that during a read operation of the type described in connection with
The voltage separation between the upper and lower curves of
To improve reliability, it would be desirable to increase the size of the read window. This would allow more margin in the design, so that expected process-induced and operating-parameter-induced performance variations could be accommodated. In conventional read circuit arrangements, there is no current source in series with the PMOS pull-up transistor in the output latch (as shown in
The larger read window that is produced by the current-source-based output latch of
As shown in
When integrated circuit 10 is being powered up and current source 112 is fully operational, transistor M2 will be on and will help output latch 120 settle to a known state. If current source 112 contains NMOS transistors (e.g., current source 112 of
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 |
---|---|---|---|
5673231 | Furutani | Sep 1997 | A |
5748520 | Asaka et al. | May 1998 | A |
6552949 | Silla et al. | Apr 2003 | B1 |
6826074 | Yamauchi | Nov 2004 | B2 |
20070090857 | Shau | Apr 2007 | A1 |