Field programmable gate arrays using resistivity sensitive memories
Field programmable gate arrays using resistivity-sensitive memories are described, including a programmable cell comprising a configurable logic, a memory connected to the configurable logic to provide functions for the configurable logic, the memory comprises a non-volatile rewriteable memory element including a resistivity-sensitive memory element, an input/output logic connected to the configurable logic and the memory to communicate with other cells. The memory elements may be two-terminal resistivity-sensitive memory elements that store data in the absence of power. The two-terminal memory elements may store data as plurality of conductivity profiles that can be non-destructively read by applying a read voltage across the terminals of the memory element and data can be written to the two-terminal memory elements by applying a write voltage across the terminals. The memory can be vertically configured in one or more memory planes that are vertically stacked upon each other and are positioned above a logic plane.
Latest UNITY SEMICONDUCTOR CORPORATION Patents:
- Vertical cross-point arrays for ultra-high-density memory applications
- Local bit lines and methods of selecting the same to access memory elements in cross-point arrays
- Vertical cross-point arrays for ultra-high-density memory applications
- Array voltage regulating technique to enable data operations on large memory arrays with resistive memory elements
- Global bit line pre-charge circuit that compensates for process, operating voltage, and temperature variations
This application is related to U.S. patent application Ser. No. 11/095,026, filed Mar. 30, 2005, U.S. Published Application No. 2006/0171200, and titled “Memory Using Mixed Valence Conductive Oxides.”
This application is related to U.S. patent application Ser. No. 12/005,685, filed on Dec. 28, 2007, US Published Application No. 2009/0172350, and titled “Non-Volatile Processor Register.”
FIELD OF THE INVENTIONThe present invention relates to programmable devices and specifically to Field Programmable Gate Arrays Using Resistivity-Sensitive Memories.
BACKGROUNDA field programmable gate array (FPGA) is a programmable logic device that allows a user to design custom logic circuits for desired tasks. A user can create a program for a desired task, transfer the program to an FPGA, and use the programmed FPGA to execute the desired task. Certain FPGAs can be reprogrammable, and allow for flexibility when creating or testing device designs.
FPGAs typically include a memory to provide functions for logic gates for implementing the program. Several different types of memories may be used with an FPGA, including write-once and reprogrammable memories. Write-once memories include memories using fuse technologies, which destroy or establish a physical connection during writing, and therefore cannot be rewritten. Fuse technologies are non-volatile and retain their contents when power is removed from the FPGA, but must be discarded if a new or updated program is desired.
FPGAs may also use reprogrammable memories such as random access memories (RAMs) including static RAMs (SRAMs). SRAMs can be reprogrammed, but lose their contents when power is removed from the FPGA. Since SRAMs are nonvolatile, FPGAs incorporating SRAMs must be booted whenever they are powered up to provide functions to the memories.
There are continued efforts to improve the implementation of FPGAs.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. Although the Drawings depict various examples of the invention, the invention is not limited by the depicted examples. Furthermore, the depictions are not necessarily to scale:
A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular embodiment. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described embodiments may be implemented according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description.
According to various embodiments, field programmable gate arrays (FPGAs) using non-volatile rewritable memories including a resistivity-sensitive memory element are disclosed. The FPGAs may include one or more programmable cells that include a memory and a configurable logic. The memory may include a resistivity-sensitive memory element that is non-volatile and rewritable. The memory stores functions for the configurable logic. Since the memory is nonvolatile, the FPGA retains its contents when power is removed and the FPGA may be powered on without booting. Since the memory is rewritable, the FPGA can be reprogrammed.
Memory TechnologyNon-volatile memory technologies may be used with memory systems to develop high density, low cost, and fast access memories. Access may refer to accessing and performing data operations (e.g., read, write, erase) on a memory or memory array, such as those developed by Unity Semiconductor, Inc. of Sunnyvale, Calif., which provide vertically-configured cell arrays (e.g., vertically-stacked, cross-point, two or three-terminal, non-volatile memory arrays) with reduced die sizes and manufacturing costs and system-level functionality. Examples of memory arrays may include vertically-stacked, two or three-terminal, cross-point memory arrays, such as those described in U.S. patent application Ser. No. 11/095,026, filed Mar. 30, 2005, U.S. Published Application No. 2006/0171200, and titled “Memory Using Mixed Valence Conductive Oxides,” hereby incorporated by reference in its entirety and for all purposes, describes two terminal memory cells that can be arranged in a cross point array. The application describes a two terminal memory element that changes conductivity when exposed to an appropriate voltage drop across the two terminals. The memory element includes an electrolytic tunnel barrier and a mixed valence conductive oxide. The voltage drop across the electrolytic tunnel barrier causes an electrical field within the mixed valence conductive oxide that is strong enough to move oxygen ions out of the mixed valence conductive oxides and into the electrolytic tunnel barrier. Oxygen depletion causes the mixed valence conductive oxide to change its valence, which causes a change in conductivity. Both the electrolytic tunnel barrier and the mixed valence conductive oxide do not need to operate in a silicon substrate, and, therefore, can be fabricated above circuitry being used for other purposes (such as selection circuitry).
The two-terminal memory elements can be arranged in a cross point array such that one terminal is electrically coupled with an x-direction line and the other terminal is electrically coupled with a y-direction line. A stacked cross point array consists of multiple cross point arrays vertically stacked upon one another, sometimes sharing x-direction and y-direction lines between layers, and sometimes having isolated lines. When a first write voltage VW1 is applied across the memory element, (typically by applying ½ VW1 to the x-direction line and ½−VW1 to the y-direction line) it switches to a low resistive state. When a second write voltage VW2 is applied across the memory element, (typically by applying ½ VW2 to the x-direction line and ½−VW2 to the y-direction line) it switches to a high resistive state. Typically, memory elements using electrolytic tunnel barriers and mixed valence conductive oxides require VW1 to be opposite in polarity from VW2.
Fast accesses for data operations may be achieved by using page buffers to allow multiple data operations to be performed substantially simultaneously (i.e., buffering data from a read and a write access). Further, various embodiments of data packet formats and data communication protocols may be used to indicate how data from different data operations (e.g., read, write) may be aligned to allow fast accesses to a memory array.
The memory technology described above therefore comprises a resistivity-sensitive memory element according to an embodiment, which may be a two- or three-terminal memory element. The resistivity-sensitive memory element detects changes in resistance in a memory element as either a 0 or a 1 bit, as is described in the above-referenced U.S. patent. The memory technology is also nonvolatile. In other words, when power is removed from the memory, the memory retains its contents. The memory technology requires no refresh, which improves performance over other memory technologies. The memory technology also requires no erase for writes and does not require an operating system (OS), improving performance. Additionally, the memory elements are physically smaller than many other memories, increasing densities leading to smaller sizes and reduced power consumption. The memory arrays can also be stacked on top off one another in a vertical manner for increased density.
A Field Programmable Gate ArrayAccording to various embodiments, an FPGA may use the memory technology described above. According to certain embodiments that are explained below, the memory technology may be used as a boot memory that is nonvolatile, thereby retaining the programming of the FPGA when power is removed. The boot memory may be used to program a conventional memory (such as a static random access memory (SRAM)) that provides functions for a configurable logic. According to another embodiment, the conventional memory is replaced with the non-volatile rewriteable memory (i.e., a memory including a resistivity-sensitive memory element such as the memory technology described above.) According to this embodiment, the FPGA can be started and be functional without booting.
The cell memory 104 may store functions for the configurable logic 106. The functions may, according to an embodiment, be a look-up table including various functions capable of controlling the configurable logic 106. According to an embodiment, the cell memory 104 may be a non-volatile rewriteable memory including a two-terminal resistivity-sensitive memory element such as the memory technology described above. According to another embodiment, the cell memory 104 may be a volatile memory such as an SRAM.
According to various embodiments, the non-volatile rewritable memory using the memory technology described above may be used to perform memory emulation. In this context, “emulation” refers to using the cell memory 104 to perform the function of one or more previously used memory types. For example, the memory cell 104 may perform the function of a SRAM. In this instance, the memory cell 104 may be said to be performing “SRAM emulation.” However, unlike SRAM which is volatile, the memory cell 104 emulates SRAM and is non-volatile (i.e., stored data is retained in the absence of power).
If the cell memory 104 is a non-volatile rewritable memory, the FPGA 100 can be initially programmed, and thereafter be powered on without booting (i.e., without having to load lookup tables or other functions from an external boot memory). This behavior is hereinafter referred to as “instant-on.” Further, the cell memory 104 can be rewritten to change the program of the FPGA 100.
The FPGA 100 may also be programmed using an internally added boot memory, which is described further regarding
The configurable logic 106 may comprise several programmable gates as may be appropriate for a specific application. The configurable logic 106 receives signals from the cell memory 104 for performing various logic functions as designated by a user of the FPGA 100. The configurable logic 106 may be a group of logic gates, or may be a specialized block such as a processor core or a digital signal processor (DSP).
The I/O logic 108 is a block used to provide communication between programmable cells 102 and other macro blocks 101. The FPGA 100 may include several macro blocks 101 and programmable cells 102, and the I/O logic 108, along with other routing components (that are described in
According to another embodiment, macro blocks 101 other than the programmable cells 102 may be included in the FPGA 100. The macro blocks 101 may include macro blocks with or without memories, or with or without configurable logics. The macro blocks 101 may include various logics that can be used to perform specialized functions for the FPGA 100.
Switches 110 may include various components, such as multiplexers and AND gates, that direct signals between the programmable cells 102. The switches 110 are connected to other switches 110 and the programmable cells 102 through communication lines 112. The switches 110 may be programmed using, for example, the boot memory described above or another programming technique to designate the proper routing between the programmable cells 102.
The switches 110 may include one or more registers 114 (or other memory elements) that stores switching and routing information for the FPGA 100. The switches 110 can be used to redirect traffic between the programmable cells 102 of the FPGA 100. The routing information may be particular to a program of the FPGA 100, and may be used to implement a desired function of the FPGA 100. For example, the routing information may direct the output of one programmable cell 102 to another programmable cell 102. The second programmable cell may use the information from the first to perform its designated function.
Each switch 110 may store different routing information based on the current program of the FPGA 100. The registers 114 may be conventional registers or registers having a resistivity-sensitive memory element (e.g., a two-terminal memory element) such as those described in U.S. patent application Ser. No. 12/005,685, filed on Dec. 28, 2007, US Published Application No. 2009/0172350, and titled “Non-Volatile Processor Register.”, which is herein incorporated by reference for all purposes. If the registers 114 use the memory technology described above, the registers 110 are non-volatile and allow instant-on of the FPGA 100 when used with a non-volatile memory 102. It is understood that other types of routing, including using different switches and different paths, may be used with the various embodiments described herein, and that other macro blocks 101 may be also be including in the routing scheme of the FPGA 100.
FPGA ImplementationsConnected to the FPGA structure 202 is a boot memory 204. The boot memory 204 stores functions for the FPGA 200 upon booting. The boot memory 204, according to an embodiment, uses the memory technology described above, including a non-volatile rewritable memory having a resistivity-sensitive memory element. According to this embodiment, because the boot memory 204 is nonvolatile, the FPGA 200 can be programmed initially and then booted without external support from other devices. Further, according to an embodiment, the memory may have a vertical configuration, which can integrate the boot memory 204 into the FPGA 200 without increasing the physical footprint of the FPGA 200.
An interface 206 and a sequencer 208 provide write data 210 and memory addresses 212 for the boot memory 204, respectively. The interface 206 and the sequencer 208 are used to program or reprogram the boot memory 204. The interface 206 receives write data from external devices such as programming devices, and can be used to receive functions for the FPGA 200. The sequencer 208 provides sequential memory addresses to populate the boot memory 204 with the received functions. According to an embodiment, the interface 206 and the sequencer 208 are used when initially programming the FPGA 200. Since the boot memory 204 is nonvolatile, once the FPGA 200 has been programmed, the FPGA 200 can boot without receiving additional functions. The sequencer may also be used to transfer data from the boot memory 204 into the FPGA structure 202 at when the FPGA 200 is powered on.
According to another embodiment, the boot memory 204 may also be used as an external memory for the FPGA structure 202. The boot memory 204 may be used to store data, such as look up tables, which are too large to store in the internal memories (e.g., the cell memories 104) of the FPGA structure 202.
An internal memory 310 may also be added to the FPGA 300 according to another embodiment. The internal memory 310 can be used to store data that is too large to be stored in the FPGA structure 302 (e.g., in the cell memories 104), or that may be needed by several different macro blocks of the FPGA structure 302. The internal memory 310 may also be used as a boot memory if so desired. The internal memory 310 communicates with the FPGA structure over at least one a data line 312.
According to an embodiment, the internal memory 310 is internal to an integrated circuit including the FPGA 300 and may be used for memory block(s) for the FPGA 300. The internal memory 310 may be used as program store for imbedded processors or as memory elements in a sequencer design or for look up tables required for some processes. The internal memory 310 may be vertically configured above the FPGA structure 302 (see, e.g.,
An IC may be configured so that logic comprising transistors and other semiconductor devices, such as the logic used to access the memory (i.e., the memory logic), multiplexers, inverters, buffers, and other devices are formed on a semiconductor substrate (e.g., a silicon Si wafer) located in a base (or bottom) logic plane. The memory may then be formed above the logic plane in one or more vertically configured planes. Using these vertical configurations significantly reduces the footprint of ICs created with this memory technology.
The FPGA 400 may be an IC that is constructed using a vertical configuration as described above regarding the disclosed memory technology. The base plane (e.g., the logic plane 402) of an IC using a vertical configuration may contain logic, active circuitry, and semiconductor elements, such as transistors and other components forming logic gates and larger devices. The memory is then formed in one or more planes above the base plane, and controlled by memory logics in the base plane. The memory is connected to the base plane using interconnects such as vias, plugs, contacts, and other interlayer connection structures, for example.
The base plane 402 includes logic 408 for programmable cells and their associated memories (e.g., the configurable logic 106 and the cell memory 104). The memory may be, for example, an SRAM emulation or other emulation of other memory types. According to an embodiment, the logic 408 may include only the configurable logic, as the FPGA 400 may use memory in the memory planes 404 and 406 for implementing the logic function and providing the signals to drive the configurable logic.
The base plane 402 may also include an interface logic 410, a sequencer logic 412, and a memory logic 414. The interface logic 410 and the sequencer logic 412 enable the interface 206 and the sequencer 208, described above. The memory logic 414 includes the components used to access the memory in the memory planes 404 and 406. The memory logic 414 may be connected to the planes 404 and 406 using interconnects such as vias.
The memory planes 404 and 406 may be used as a boot memory such as the boot memory 204, or may, according to some embodiments, be used as the cell memory (e.g., the cell memory 104). The memory planes 404 and 406 may also be used as an internal memory such as the internal memory 310. Any number of memory planes may be used with the FPGA 400 depending on the specific application. Moreover, one or more memory planes (e.g., memory planes 404 and 406) may be partitioned into sub-planes.
The memory in the memory plane 424 comprises a non-volatile rewriteable memory including a resistivity-sensitive memory element, such as the memory technology described above. The memory plane 424 is divided into several individually accessed cell memories 428 to enable multiple programmable cells for the FPGA 420. Each of the cell memories 428 is individually controlled by one of the memory logics 426. The cell memories 428 may also be divided into additional planes if so desired, or additional planes may be added.
The logic plane 442, like the logic plane 422, includes memory logics 448 that are used to control cell memories 450 in the first memory plane 444. Additionally, the logic plane 442 includes another memory logic 452 that may be used to control the extended memory 460 of the second memory plane 446. The memory logic 452 may be connected to the second memory plane 446 using vias routed through the first memory plane 444.
Although certain vertically configured memories are shown in
Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed examples are illustrative and not restrictive.
Claims
1. An integrated circuit for a field programmable gate array, comprising:
- a substrate including active circuitry fabricated in a logic plane and an inter-layer interconnect structure; and
- at least one memory plane in contact with the substrate and vertically positioned over the substrate, the at least one memory plane including a plurality of non-volatile two-terminal memory elements configured in a two-terminal cross-point array, the inter-layer interconnect structure operative to electrically couple the active circuitry with the plurality of non-volatile two-terminal memory elements, and
- wherein the active circuitry includes sequencer logic operative to provide sequential memory addresses and write data for data operations on the plurality of non-volatile two-terminal memory elements, interface logic operative to receive the write data, memory logic operative to access the plurality of non-volatile two-terminal memory elements for the data operations, and configurable logic electrically coupled with at least a portion of the plurality of non-volatile two-terminal memory elements and operative to form a plurality of programmable cells configured to implement a programmed logic function.
2. The integrated circuit of claim 1, wherein each non-volatile two-terminal memory element stores data as a plurality of conductivity profiles that can be non-destructively determined by applying a read voltage across terminals of the non-volatile two-terminal memory element and new data can be written by applying a write voltage across terminals of the non-volatile two-terminal memory element.
3. The integrated circuit of claim 1, wherein each non-volatile two-terminal memory element includes an electrolytic tunnel barrier and a mixed valence conductive oxide.
4. The integrated circuit of claim 1, wherein at least a portion of the plurality of non-volatile two-terminal memory elements in the at least one memory plane are configured as boot memory.
5. The integrated circuit of claim 4, wherein the boot memory includes at least one look-up table configured to store data operative to initialize non-volatile two-terminal memory elements that are un-programmed.
6. The integrated circuit of claim 1, wherein the active circuitry comprises CMOS circuitry.
7. The integrated circuit of claim 1, wherein a write operation on any of the plurality of non-volatile two-terminal memory elements does not require an erase operation prior to the write operation.
8. An integrated circuit for a field programmable gate array, comprising:
- a substrate including active circuitry fabricated in a logic plane and an inter-layer interconnect structure; and
- at least one memory plane in contact with the substrate and vertically positioned over the substrate, the at least one memory plane including a plurality of cell memories, each cell memory including a plurality of non-volatile two-terminal memory elements configured in a two-terminal cross-point array, the inter-layer interconnect structure operative to electrically couple the active circuitry with the plurality of non-volatile two-terminal memory elements, and
- wherein the active circuitry includes a plurality of memory logics, each memory logic operative to individually access a specific one of the plurality of cell memories for data operations.
9. The integrated circuit of claim 8, wherein each non-volatile two-terminal memory element stores data as a plurality of conductivity profiles that can be non-destructively determined by applying a read voltage across terminals of the non-volatile two-terminal memory element and new data can be written by applying a write voltage across terminals of the non-volatile two-terminal memory element.
10. The integrated circuit of claim 8, wherein each non-volatile two-terminal memory element includes an electrolytic tunnel barrier and a mixed valence conductive oxide.
11. The integrated circuit of claim 8, wherein the at least one memory plane comprises a plurality of memory planes and one of the plurality of memory planes includes an extended memory for storing non-volatile data.
12. The integrated circuit of claim 11, wherein the non-volatile data comprises data for a look-up table.
13. The integrated circuit of claim 11, wherein the non-volatile data comprises data for boot memory.
14. The integrated circuit of claim 11, wherein the non-volatile data comprises additional data for the plurality of cell memories.
15. The integrated circuit of claim 11, wherein the active circuitry further comprises memory logics operative to control data operations on the extended memory.
16. The integrated circuit of claim 8, wherein the active circuitry further includes sequencer logic operative to provide sequential memory addresses and write data for the data operations on the plurality of cell memories, interface logic operative to receive the write data, and configurable logic electrically coupled with at the plurality of cell memories and operative to form a plurality of programmable cells configured to implement a programmed logic function.
17. The integrated circuit of claim 8, wherein the active circuitry comprises CMOS circuitry.
18. The integrated circuit of claim 8, wherein a write operation on any of the plurality of non-volatile two-terminal memory elements does not require an erase operation prior to the write operation.
19. The integrated circuit of claim 8, wherein the at least one memory plane comprises a plurality of memory planes that are vertically stacked upon one another.
Type: Application
Filed: Jan 25, 2010
Publication Date: Jun 3, 2010
Patent Grant number: 7902868
Applicant: UNITY SEMICONDUCTOR CORPORATION (Sunnyvale, CA)
Inventor: Robert Norman (Pendleton, OR)
Application Number: 12/657,678
International Classification: H03K 19/177 (20060101);