Abstract:
A first-in, first-out (FIFO) static random access memory (SRAM) device includes EEPROM cells which provide non-volatile backup capability. The sizing of each SRAM cell is such that its associated EEPROM cell is automatically programmed via the output of the SRAM cell. Upon power-up, the EEPROM cell restores the SRAM cell to the inverse of whatever state it was in prior to the most recent EEPROM programming (before a preceding power-down). This provides non-volatility to the SRAM without a significant increase in manufacturing costs or overhead.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to static random access memories (SRAMs), and more particularly, to backing up SRAMs with electrically erasable programmable read-only memories (EEPROMs) when SRAMs are used as first-in first-out (FIFO) serial memory devices. 
     Integrated circuit devices such as programmable logic arrays typically need large numbers of transfer devices for such purposes as (1) multiplexing various signals through a single output, (2) circuit control, and (3) data transfer. These transfer devices are typically controlled through the use of FIFO SRAMs to select or de-select the gates of the devices. SRAMs, by their nature, are volatile devices (i.e., they lose the stored information when the circuit is unpowered). Therefore, the controlling data must be re-written into them on each power-up operation. 
     Heretofore, circuit designs that require non-volatile serial memory elements (i.e., memory elements that retain the stored information even when the circuit is unpowered) have had to rely on serial electrically programmable read-only memory (EPROM). The addition of serial EPROM elements to the programmable logic array (on the same, or on a separate integrated circuit chip) can cause an increase in design complexity and manufacturing costs, as well as an increase in array over head costs. 
     In view of the foregoing, it is an object of this invention to utilize EEPROM elements to provide a non-volatile backup to FIFO SRAM elements, thereby eliminating the need for serial EPROM devices. It is a further object of the invention to provide the capability to automatically program each EEPROM cell from its associated SRAM cell, thereby reducing the over head of the additional EEPROM cells. 
     SUMMARY OF THE INVENTION 
     These and other objects of the invention are accomplished in accordance with the principles of the invention by providing an EEPROM cell for each SRAM cell element of a FIFO, thereby creating a non-volatile SRAM FIFO. The sizing of the SRAM cell (i.e., the sizes of the back-to-back inverters relative to one another) is such that the SRAM cell will power up to logic 1 if the EEPROM is not conducting. If the EEPROM is conducting, the SRAM cell will power up to logic 0. The EEPROMs are all initially set to be non-conducting, and are individually made conducting when the associated SRAM cell is set to logic 1. In this manner, each EEPROM cell is automatically programmed by its associated SRAM cell. 
     Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic diagram of a typical prior art SRAM cell. 
     FIG. 2 is a schematic diagram of a first illustrative embodiment of an EEPROM-backed FIFO element constructed in accordance with the principles of this invention. 
     FIG. 3 is a schematic diagram of a second illustrative embodiment of an EEPROM-backed FIFO element. 
     FIG. 4 is a schematic diagram of an illustrative embodiment of a four-element EEPROM-backed FIFO, using the FIFO elements of FIG. 2, in accordance with the principles of this invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 shows a typical prior art SRAM cell 10, which represents one cell in a FIFO chain. SRAM cell 10 includes global controllable voltage source 15 (which provides a voltage V CC  to all SRAM cells in a given circuit), p-channel transistors T 1  and T 2 , and n-channel transistors T 3 , T 4 , and T 5 . Transistor pairs T 1 , T 3  and T 2 , T 4  individually act as inverters, inverter T 2 , T 4  being stronger than inverter T 1 , T 3 . When coupled together (as shown in FIG. 1), the transistor pairs function as a storage cell. Pass transistor T 5  is used to control data transfer between storage cells. Data enters the current storage cell when pass transistor T 5  from the previous cell in the FIFO chain is set to be conducting. Similarly, data is passed to the next cell in the FIFO chain by setting current transistor T 5  to be conducting. Typically, all pass transistors T 5  in a FIFO chain are set to be conducting during the loading of the FIFO chain and each pass transistor T 5 , in sequence from the output towards the input, is set to be non-conducting after loading of a binary digit in the associated cell occurs. When power at predetermined voltage source 15 goes to zero, the SRAM cell loses its capability to retain stored information. 
     FIG. 2 shows an embodiment of the invention in the design of EEPROM-backed SRAM cell 20. SRAM cell 20 includes all of the circuitry of SRAM cell 10, with the addition of EEPROM cell 25. EEPROM cell 25 includes floating gate transistor F 1  and controllable voltage sources 26 and 27. Voltage sources 26 and 27 may be global voltage sources, whereby they supply power to all of the EEPROM cells that are used to backup SRAM cells for a given FIFO circuit configuration. Due to the nature of this implementation, EEPROM cell 25 can be added to an SRAM cell without including a series n-channel transistor that is usually required for decoding an EEPROM cell. The lack of this n-channel transistor helps reduce the relatively small over-head that accompanies the addition of the EEPROM cells. 
     Preparation for normal operation of a FIFO made using SRAM cells of this invention begins with a global erase being performed on all of the EEPROM backup cells. This is typically accomplished by setting voltage source 27 to a high voltage, such as 5 volts, and voltage source 26 to 0 volts, while voltage source 15 is raised from 0 volts to approximately 5 volts. This causes node 21 to be approximately 0 volts. Voltage source 27 is then used to momentarily apply a very high voltage, such as 15 volts, to the gate of transistor F 1 . This causes a negative charge to build up on the floating gate of transistor F 1  which inhibits transistor F 1  from conducting at normal logic levels. In the final step, before normal operation of the SRAM cells can occur, voltage source 27 is returned to zero. 
     During normal operation of a FIFO made of EEPROM-backed SRAM cells of this invention, information is passed from SRAM cell to SRAM cell, as described above, until the FIFO chain is full. After loading of the FIFO is complete, selective programming of the EEPROM cells occurs by typically setting voltage source 27 to zero, voltage source 26 to a high voltage, such as 5 volts. This is followed by momentarily raising voltage source 15 from a relatively high voltage such as 5 volts to a relatively very high voltage such as 15 volts. This will cause automatic programming of the selected EEPROM cells. If node 21 (the output of the SRAM cell) is set to logical 1, the very high voltage of voltage source 15, which is seen at node 21, will cause the charge to be removed from the floating gate of transistor F 1 , thereby changing transistor F 1  from non-conducting to conducting. If node 21 is set to logical 0, the very high voltage of predetermined voltage source 15 will not be seen at node 21. This will cause the charge to remain on the floating gate of transistor F 1 , which therefore remains non-conducting. 
     When power is shut down, each EEPROM cell will retain the information that was stored in its associated SRAM cell. During a normal power-up sequence, voltage sources 26 and 27 are set to zero and voltage source 15 is set to a high voltage such as 5 volts. The SRAM cells are designed such that the size of the back-to-back inverter pairs, relative to one another, causes node 21 to power up to a logical 1 when EEPROM cell 25 is non-conducting. This occurs because the high voltage from predetermined voltage source 15 will not be conducted across transistor F 1  to ground (due to the fact that transistor F 1  is non-conducting), and remains at node 21. On the other hand, if EEPROM cell 25 is conducting, node 21 will be pulled to a level of zero volts across transistor F 1 . In this manner, the inverse of the information existing in the SRAM cell prior to the most recent EEPROM programming (before a preceding power-down) is restored to the SRAM cell. The primary objective of retaining the SRAM data in a non-volatile form has been accomplished. It is a trivial task to manipulate this inverted data within the software of a given system using FIFO cells of this invention. 
     FIG. 3 shows an alternative embodiment wherein EEPROM-backed SRAM cell 30 is constructed using all of the same hardware as EEPROM-backed SRAM cell 20 in addition to power-on-reset transistor T 6  and bias transistor T 7 . Transistors T 6  and T 7  are used to provide a more positive method of ensuring that data is restored properly during power-up. For normal power-up operation, transistor T 6  is set high, thereby setting node 31 to logical 0, which causes node 21 to be a logical 1. At the same time, transistor T 7  is set to an approximate value between 3 and 3.5 volts, causing the normally strong inverter pair (T 2 , T 4 ) to be weak. Voltage source 26 is set to logical 0, while voltage source 27 is pulsed to 5 volts, causing EEPROM F 1  to be more conducting. This permits the value at node 21 to change from a logical 1 to a logical 0 if EEPROM cell 25 is conducting. As in the circuit of FIG. 2, the inverse of the information existing in the SRAM cell prior to the most recent EEPROM programming (before a preceding power-down) is restored to the SRAM cell. During normal operation, transistors T 6  and T 7  are set to zero, thereby restoring transistor pair T 2 , T 4  back to being a strong inverter. 
     FIG. 4 shows an illustrative example of the invention in four-element EEPROM-backed FIFO 40, which comprises four instances of EEPROM-backed SRAM cell 20, global voltage source 15, and input transistor T 8 . As previously described, this four-element FIFO would be loaded with four binary digits of information, sequentially through IN. Transistor T 8  and the first three instances of transistor T 5  would be turned on to allow the first binary digit to travel from IN to the last SRAM cell 20 d . Transistor T 5  in SRAM cell 20 c  would then be turned off in preparation of the second binary digit being loaded into the FIFO. The same sequence is followed for loading the remaining three binary digits of information into SRAM cells 20 c , 20 b , and 20 a . After loading of the FIFO has been completed, the EEPROM cells can be programmed using global voltage source 15, as described above. Restoring the SRAM cells of FIFO 40 after power-down is also performed as described above. 
     It will be understood that the foregoing is merely illustrative of the principles of this 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, EEPROM-backed SRAM cell 30 can be substituted for cell 20 in FIFO 40 to provide an alternate method of ensuring proper data restoration after a power-down.