`5,847,577
`(114) Patent Number:
`United States Patent 55
`
`
`
`
`
`
`
`
`
`
`
`
`
`[45] Date of Patent:
`Trimberger
`*Dec. 8, 1998
`
`
`
`
`
`
`
`
`
`
`
`
`[54] DRAM MEMORYCELL FOR
`PROGRAMMABLELOGIC DEVICES
`
`
`
`
`
`
`[75]
`
`
`
`
`
`Inventor: Stephen M. Trimberger, San Jose,
`Calif.
`
`
`
`
`
`
`
`
`
`
`
`[73] Assignee: Xilinx, Inc., San Jose, Calif.
`
`
`
`
`
`
`
`
`[*] Notice:
`The term of this patent shall not extend
`
`
`
`
`
`
`
`beyond the expiration date of Pat. No.
`
`5,581,198.
`
`
`
`
`
`
`[21] Appl. No.: 758,286
`
`
`
`[22]
`Filed:
`Nov. 1, 1996
`
`
`
`
`
`
`
`Related U.S. Application Data
`
`
`
`
`
`
`
`
`[63] Continuation-in-part of Ser. No. 394,092,Feb. 24, 1995, Pat.
`No. 5,581,198.
`
`
`
`
`
`
`
`
`
`
`[51]
`Int. Cheee H03K 19/177; G11C 7/00
`
`
`
`
`
`
`
`[52] U.S. Ch oe 326/38; 326/41; 365/228;
`711/106
`
`
`
`
`
`
`
`[58] Field of Search 00... 326/38-40; 365/222,
`
`
`
`
`
`365/228, 230.03, 230.05, 149; 711/100,
`106, 161-162
`
`
`
`
`
`[56]
`
`
`
`
`
`
`
`
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`
`8/1993 Freeman .
`Re. 34,363
`
`
`
`
`2/1975 Yamadaet al. oe eee 340/172.5
`3,866,182
`
`
`
`
`
`
`
`4,366,560 12/1982 McDermott et al
`.
`
`
`
`
`
`1/1987 Hartung oo... ee ceeeeee 364/200
`4,638,425
`
`
`
`
`
`4,642,487
`2/1987 Carter .
`
`
`
`7/1987 Sakurai et al. oc. eeeee 365/222
`4,682,306
`
`
`
`
`
`
`11/1987 Carter ocecieccceenersensseeeees 305/94
`4,706,216
`
`
`
`
`
`6/1988 Hsieh un...
`we 365/203
`4,750,155
`
`
`
`
`
`6/1990 Matsumuraetal.
`.. 365/187
`4,935,896
`
`
`
`
`
`
`5,051,887
`9/1991 Bergeret al. cee 364/200
`
`
`
`
`
`
`2/1993 El Gamaletal. .
`5,187,393
`
`
`
`
`
`5,270,967 12/1993 Moazzamiet al... 365/230.06
`
`
`
`
`
`
`2/1994 Hollerbauer
`...... ee eeeeeeee 395/425
`5,283,885
`
`
`
`
`
`12/1994 Wahlstrom ...... ce eeeeeseeeeeeeee 326/38
`5,375,086
`
`
`
`
`
`5,450,608
`9/1995 Steele wu...
`.. 395/800
`
`
`
`
`
`
`
`5,581,198 12/1996 Trimberger
`occ 326/39
`
`
`
`
`
`1/1997 Freeman 0... eee eeeereeeeneeee 365/222
`5,594,698
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`R. Sedgewick, “Algorithms”, pp. 283-284, Addison—Wes-
`
`
`ley, 1983.
`
`
`
`
`
`R. Sedgewick, “Algorithms”, pp. 295-303, Addison—Wes-
`
`
`ley, 1983.
`
`
`
`
`
`
`
`J.F. Wakerly, “Digital Design Principles and Practices” pp.
`
`
`
`
`34-44, Prentice Hall, 1990.
`
`
`
`
`
`
`
`
`Bradley Felton and Neil Hastie, “2.6 Configuration Data
`
`
`
`
`
`
`Verification and the Integrity Checking of SRAM-—based
`
`
`
`
`
`
`FPGAs” GEC Plessey Semiconductors, FPGAs, W.R.
`
`
`
`
`
`
`
`Moore & W. Luk(eds.), 1991, Abingdon EE&C Books, 15
`
`
`
`
`
`
`
`Harcourt Way, Abingdon, OX14 INV, UK,pp. 54-60.
`
`
`
`
`
`
`
`J.F. Wakerly, “Digital Design, Principles and Practices”, pp.
`
`
`
`
`255-257, Prentice Hall, 1989.
`
`
`
`
`
`“Semiconductor Memories”, B. Prince, 2nd Edition, pp.
`
`
`
`
`
`31-39 and pp. 654-655, 1991.
`
`
`
`
`
`
`
`
`
`
`
`Primary Examiner—Jon Santamauro
`
`
`
`
`
`
`Attorney, Agent, or Firm—Anthony C. Murabito; Wagner
`
`
`
`
`Murabito & Hao; Jeanette S. Harms
`
`
`ABSTRACT
`[57]
`
`
`
`
`
`
`
`
`
`A plurality of DRAM cells are used to store the state of the
`
`
`
`
`
`
`programmable points in a programmable logical device
`
`
`
`
`
`
`
`(e.g., a field programmable gate array or FPGA). An indi-
`
`
`
`
`
`
`
`
`vidual DRAM cell is used in conjunction with each pro-
`
`
`
`
`
`
`
`grammable interconnect point (PIP) within the FPGA to
`
`
`
`
`
`
`
`
`
`hold a logical state indicating the connectivity state of the
`
`
`
`
`
`
`
`
`
`PIP. During a refresh cycle, each DRAM memorycell is
`
`
`
`
`
`
`
`
`loaded with its current logical state in order to maintain this
`
`
`
`
`
`
`
`
`state within the PIP. An information store contains duplicate
`
`
`
`
`
`
`
`
`
`data for each DRAM cell and this duplicate data is supplied
`
`
`
`
`
`
`
`
`
`and read during the refresh cycle in order to provide each
`
`
`
`
`
`
`
`
`
`DRAM cell with its proper logical state. In this manner, the
`
`
`
`
`
`
`
`
`
`
`refresh cycle does not alter the logic configuration of its
`associated FPGA DRAM cell. The information store can be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a plurality of DRAM cells or the information store can be of
`
`
`
`
`
`
`
`non-volatile memory,
`for instance,
`read only memory
`
`
`
`
`
`
`(ROM), programmable ROM (PROM), erasable PROM
`
`
`
`
`
`(EPROM), electrically erasable PROM (EEPROM), or of
`
`
`
`non-volatile magnetic storage.
`
`
`
`
`23 Claims, 5 Drawing Sheets
`
`
`
`309
`
`
`DATA
`
`
`
`
`
`
`
`
`
`
`
`
`307
`
`
`ERROR
`
`DETECTION
`
`AND CORRECTION
`
`
`
`
`
`
`
`306
`
`
`
`
`| FPGAWORD |350 310
`
`
`a |
`
`
`
`
`
`
`
`
`
`DECOMPRESSION|.329a
`
`308 7
`
`DATA
`
`
`
`
`| DECRYPTION|32!
`
`ALID
`Vv.
`
`
`GENERATOR
`
`
`
`
`
`
`
`
`
`
`
`
`REGISTER
` SHADOW
`
`
`
`
`
`
`
`
`
`DRAM
`
`
`LIN
`ne ADDRESS
`
`
`
`’
`SEQUENCER
`
`AND
`DECODER
`
`
`
`SHADOW
`ARRAY
`
`
`301
`
`
`
`
`
`
`
`Page 1 of 11
`
`FLEX LOGIX EXHIBIT 1043
`
`FLEX LOGIX EXHIBIT 1043
`
`Page 1 of 11
`
`
`
`U.S. Patent
`
`
`
`
`Dec. 8, 1998
`
`
`
`
`Sheet 1 of 5
`
`
`
`5,847,577
`
`
`
`
`
`DATA
`
`100
`
`ADDR
`
`
`FIG. 1
`
`PRIOR ART
`
`
`
`
`
`DATA
`
`
`
`
`
`
`
`co 200
`
`ADDR
`
`Page 2 of 11
`
`Page 2 of 11
`
`
`
`U.S. Patent
`
`Dec. 8, 1998
`
`Sheet 2 of 5
`
`5,847,577
`
`
`
`oreWAONANOUSWVud
`
`SsauddavMOGVHS
`
`€Old
`
`adddoodd
`
`CNVAVUAV
`
`oze|NOISSaadWOO|LeLe__
`
`____fo
`
`—-—_—_—
`
`ose|CYOMVDOdI|YOLVYANADILTECVIvA
`iz!NOLMdAxOd|vivd
`
`OO€
`
`NOLLOAYAOOUNV
`
`NOLLOALAGUHLSIOa
`wowsVLVd
`
`Page 3 of 11
`
`Page 3 of 11
`
`
`
`
`U.S. Patent
`
`
`
`
`Dec. 8, 1998
`
`
`
`
`Sheet 3 of 5
`
`
`5,847,577
`
`
`
`I]
`
`
`
`{2
`
`
`
`408
`
`
`
`nsTd
`
`
`
`
`
`400
`
`
`
`
`403
`404
`
`
`D|
`
`
`
`405
`
`.
`
`
`FIG.4
`
`414
`
`
`
`406
`
`
`
`OUT
`
`
`
`3
`
`415
`
`
`
`401
`
`
`
`
`
`
`
`
`
`
`FIG. 5
`
`Page 4 of 11
`
`Page 4 of 11
`
`
`
`U.S. Patent
`
`
`
`
`Dec. 8, 1998
`
`
`
`
`Sheet 4 of 5
`
`
`5,847,577
`
`
`
`TO MUX 520
`
`
`621
`
`
`
`FIG.6b
`
`620
`
`
`
`KoEen
`
`
`
`FIG.6a 600
`
`
`
`
`Page 5 of 11
`
`Page 5 of 11
`
`
`
`U.S. Patent
`
`
`
`
`Dec. 8, 1998
`
`
`
`
`Sheet 5 of 5
`
`
`5,847,577
`
`
`
`
`
`
`Yl 2
`
`
`
`72
`[2
`
`#00€
`
`
`
`FIG. 7
`
`
`
`
`Il
`
`
`
`
`
`Page 6 of 11
`
`Page 6 of 11
`
`
`
`RELATED PATENT APPLICATIONS
`
`
`
`
`
`
`
`The present patent application is a continuation-in-part of
`
`
`
`
`
`
`
`
`
`patent application Ser. No. 08/394,092 filed Feb. 24, 1995,
`
`
`
`
`
`
`
`
`now USS. Pat. No. 5,581,198, entitled “Shadow DRAM for
`
`
`
`
`
`
`Programmable Logic Devices,” by Stephen Trimberger, and
`
`
`
`
`
`
`assigned to the assignee of the present invention.
`BACKGROUND OF THE INVENTION
`
`
`
`
`2
`includes an access PIP that either connects an interconnect
`
`
`
`
`
`
`
`
`
`
`
`
`
`segment to an input pin or an output pin of the CLB.
`
`
`
`
`
`
`
`Because the PIPs in the FPGA are programmable, any
`
`
`
`
`
`
`
`
`given output pin of a CLB is connectable to any given input
`
`
`
`
`
`
`
`
`
`pin of any other desired CLB. Thus, a specific FPGA
`
`
`
`
`
`
`
`configuration having a desired function is created by
`
`
`
`
`
`
`
`selected generation of control signals to configure the spe-
`
`
`
`
`
`
`
`
`
`cific function of each CLB in an FPGA,together with
`
`
`
`
`
`
`
`selected generation of control signals to configure the vari-
`ous PIPs that interconnect the CLBs within the FPGA.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Each PIP typically includes a single pass transistor(i.e.
`
`
`
`
`
`
`
`
`effectively a switch). The state of conduction, i.e. whether
`
`
`
`
`
`
`the switch is opened or closed, is controlled by application
`
`
`
`
`
`
`
`of the control signals discussed aboveto a transistor control
`
`
`
`
`
`
`
`
`
`terminal, e.g. a gate. The programmed state of each pass
`
`
`
`
`
`
`transistor is typically latched by a storage device, such as a
`
`
`
`
`
`
`
`
`static random access memory (SRAM)cell 100, illustrated
`
`
`
`
`
`
`
`
`in FIG. 1. As shown in FIG. 1, a high signal ADDR on
`
`
`
`
`
`
`
`address line 102 identifies the SRAM cell to be programmed
`
`
`
`
`Description of the Related Art
`
`
`
`
`
`
`
`
`by turning on an n-type passtransistor 104, thereby allowing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the desired memorycell state DATA to be transferred from
`2. A field programmable gate array (FPGA) is a program-
`the data line 101 to a latch 106. The state of the control
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`mable integrated circuit logic device that consists of a matrix
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`signal stored in the latch 106 determines whether a pass
`of configurable logic blocks (CLBs) embedded in a pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`transistor (PIP) 109 is turned on oroff, thereby opening or
`grammable routing mesh. The combined programming of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`closing a path in the FPGAinterconnect.
`the CLBs and routing network define the function of the
`device. The device is referred to as an FPGA because the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`An SRAM cell
`is typically used as a storage device
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`array of CLBscontained on the device can be configured and
`because the SRAM cell reliably maintains its value as long
`
`
`
`
`
`
`
`
`
`
`
`
`
`interconnected by the user in the user’s facility by means of
`as poweris supplied. However, as shownin FIG. 1, because
`
`
`
`
`
`
`
`
`
`
`
`
`special hardware and software.
`SRAM cell 100 includes two inverters 107/108 and a pass
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`transistor 104, SRAM cell 100 requires significant area on
`FPGAs are well known in the art. For example US. Pat.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`an integrated circuit. Typically, the larger the area needed to
`No. RE 34,363, reissued on 31 Aug. 1993, describes a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`implement a PIP, the fewer numberof PIPs that can be fit
`configurable logic array that includes a plurality of CLBs
`
`
`
`
`
`
`
`
`onto an integrated circuit.
`interconnected in response to control signals to perform a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`selected logic function, and in which a memoryis used to
`In view of the continuing trend to increase the numberof
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`store the particular data used to configure the CLBs. U.S.
`complex functions implemented by an FPGA,a needarises
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Pat. No. 4,642,487, issued on 10 Feb. 1987, teaches a special
`for a method to reduce the size of the memorycells used to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`interconnect circuit for interconnecting CLBs in an FPGA
`hold the program for the FPGA interconnect, thereby reduc-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`without using the general
`interconnect structure of the
`ing the size of the FPGA and lowering its cost. Further,
`40
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FPGA.USS. Pat. No. 4,706,216, issued on 10 Nov. 1987,
`smaller memory cells would permit larger capacity FPGAs
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`describes a configurable logic circuit that includes a config-
`to be built than were previously possible.
`
`
`
`
`
`
`urable combinational logic element, a configurable storage
`
`
`
`
`
`
`
`A dynamic random access memory (DRAM)cell, which
`
`
`
`
`
`
`
`
`circuit, and a configurable output select logic circuit. U.S.
`
`
`
`
`
`
`
`
`is much smaller than an SRAM cell, has previously not been
`
`
`
`
`
`
`
`
`Pat. No. 4,750,155, issued on 7 June 1988, describes a five
`
`
`
`
`
`used in FPGAs for a numberof reasons, including:
`
`
`
`
`
`
`
`
`transistor memorycell for an FPGAthat can bereliably read
`
`
`
`
`
`
`1. ADRAM cell is volatile and subject to alpha particle
`and written.
`
`
`
`
`
`
`
`
`
`
`
`upsets that can change the state stored in the cell;
`
`
`
`
`
`
`
`
`Each CLB can provide one or more of the functions
`
`
`
`
`
`
`2. ADRAM mustbe periodically refreshed. Sensing the
`
`
`
`
`
`
`
`
`provided by an AND gate, flip-flop, latch, inverter, NOR
`
`
`
`
`
`
`DRAM cell, for example to refresh the cell, destroys
`
`
`
`
`
`
`
`
`gate, exclusive OR gate, as well as combinations of these
`
`
`
`
`
`
`the current value in the cell; and
`50
`
`
`
`
`
`
`
`functions to form more complex functions. The particular
`
`
`
`
`
`
`
`3. Nearby signals, or signals running over a DRAM cell,
`
`
`
`
`
`
`function performed by the CLB is determined by control
`can affect the contents of the cell.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`signals that are applied to the CLB fromacontrol logic
`
`
`
`
`
`
`
`
`circuit. The control logic circuit is formed integrally with,
`SUMMARYOF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`
`
`
`and as part of, the integrated circuit on which the CLBis
`
`
`
`
`
`
`
`formed. If desired, control information can be stored and/or
`
`
`
`
`
`
`
`
`In accordance with the present invention, a plurality of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generated outside ofthis integrated circuit and transmitted to
`DRAM cells are used to store the state of the programmable
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the CLB. The actual set of control bits provided to each CLB
`points in a programmable logical device (e.g., a field pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`on the integrated circuit depends upon the functionsthat the
`grammable gate array or FPGA). An individual DRAM cell
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CLB and, more globally, the integrated circuit are to per-
`is used in conjunction with each programmable interconnect
`60
`form.
`
`
`
`
`
`
`
`
`
`
`point (PIP) within the FPGAto holdalogicalstate indicating
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Each CLB typically has a plurality of input and output
`the connectivity state of the PIP. In one embodiment, the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`pins, and a set of programmable interconnect points (PIPs)
`information store is typically organized with the same num-
`ber of bits and wordsas there are FPGA DRAM cells within
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for each input and output pin. The general interconnect
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`structure of the FPGA includes a plurality of interconnect
`the FPGA, e.g.
`there is a one-to-one correspondence
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`segments and a plurality of PIPs, wherein each interconnect
`between FPGA DRAM cells and the memorycells of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`segment is connected to one or more other interconnect
`information store. During a refresh cycle, each DRAM
`
`
`
`
`
`
`
`
`
`
`
`
`
`segments by programming an associated PIP. An FPGA also
`memory cell is loaded with its current logical state in order
`
`
`
`
`
`
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`
`30
`
`35
`
`
`
`
`
`45
`
`
`
`
`
`55
`
`
`
`65
`
`
`
`5,847,577
`
`
`
`
`1
`DRAM MEMORYCELL FOR
`
`
`
`
`PROGRAMMABLELOGIC DEVICES
`
`
`
`
`
`
`
`
`
`1. Technical Field
`
`
`
`
`
`
`
`
`
`
`The invention relates to a field programmablegate array,
`
`
`
`
`
`
`
`
`and more particularly, to a shadow memory circuit that is
`
`
`
`
`
`
`
`adapted to effect and maintain selected interconnection of
`
`
`
`
`
`
`
`various logic and other elements in a field programmable
`
`
`gate array.
`
`Page 7 of 11
`
`Page 7 of 11
`
`
`
`
`3
`to maintain this state within the PIP. An information store
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`contains duplicate data for each DRAM cell and this dupli-
`
`
`
`
`
`
`
`
`
`cate data is supplied and read during the refresh cycle in
`
`
`
`
`
`
`
`
`order to provide each DRAM cell with its proper logical
`
`
`
`
`
`
`
`
`
`
`
`state. In this manner, the refresh cycle does not alter the logic
`
`
`
`
`
`
`
`
`configuration of its associated FPGA DRAM cell. The
`
`
`
`
`
`
`
`information store can be a plurality of DRAM cells or the
`
`
`
`
`
`
`
`
`information store can be of non-volatile memory,
`for
`
`
`
`
`
`
`
`instance, read only memory (ROM), programmable ROM
`10
`
`
`
`
`
`
`(PROM), erasable PROM (EPROM),electrically erasable
`
`
`
`
`
`PROM (EEPROM), or of non-volatile magnetic storage.
`
`
`
`
`
`
`
`
`The present invention significantly reduces area on the
`
`
`
`
`
`
`
`
`FPGA compared to the area required by prior art memory
`
`
`
`
`
`
`
`
`cells. Furthermore, the present invention also eliminates the
`
`
`
`
`
`
`
`
`
`
`need for separate power and groundlines that support prior
`
`
`
`
`
`
`
`
`art memory cells,
`thereby reducing the number of lines
`within the FPGA.
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`
`
`FIG. 1 is a schematic diagram of a prior art SRAM
`
`
`
`
`interconnect cell for an FPGA;
`
`
`
`
`FIG. 2 is a schematic diagram of a DRAM interconnect
`
`
`
`cell for an FPGA;
`
`
`
`
`
`FIG. 3 is a block schematic diagram of a DRAM inter-
`connect control and refresh circuit for an FPGAin accor-
`
`
`
`
`
`
`
`
`
`
`
`
`dance with the present invention;
`
`
`
`
`
`FIG. 4 is a schematic diagram of a prior art
`
`
`
`
`configuration circuit for an FPGA;
`
`
`
`
`FIG. 5 is a schematic diagram of a logic configuration
`
`
`
`
`
`
`
`circuit for an FPGA in accordance with the present inven-
`
`tion;
`
`
`
`
`
`
`
`FIGS. 6a and 6b are block schematic diagramsofalter-
`
`
`
`
`
`
`native embodimentsof a portion of a storage elementcircuit
`
`
`
`
`
`
`in accordance with the present invention;
`
`
`
`
`
`
`FIG. 7 is a block schematic diagram of a logic configu-
`
`
`
`
`
`
`
`
`ration circuit for an FPGA having a DRAM configuration
`
`
`
`
`
`
`
`element in accordance with the present invention; and
`
`
`
`
`
`
`
`FIG. 8 is a block schematic diagram of another logic
`
`
`
`
`
`
`
`configuration circuit for an FPGA having a DRAM configu-
`
`
`
`
`
`
`
`ration element in accordance with the present invention.
`DETAILED DESCRIPTION OF THE DRAWINGS
`
`
`
`
`FIG. 2 illustrates a DRAM cell 200 for an FPGA in
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`accordance with the present invention. As with SRAM cell
`
`
`
`
`
`
`
`
`
`100 (FIG. 1), a high signal ADDR on an address line 202
`
`
`
`
`
`
`
`
`turns on a first pass transistor 204,
`thereby allowing a
`
`
`
`
`
`
`
`
`DRAM cell 200 to be programmed. The state stored by
`
`
`
`
`
`
`
`
`DRAM cell 200 is set by a signal DATA supplied overa data
`
`
`
`
`
`
`
`line 201. Specifically, if both signals DATA and ADDRare
`
`
`
`
`
`
`
`
`high, then a capacitor 206 begins to charge. The charge
`
`
`
`
`
`
`
`
`
`stored in capacitor 206 sets the state of the control terminal
`
`
`
`
`
`
`
`
`of the second passtransistor 209, thereby opening or closing
`
`
`
`
`
`
`
`
`
`a path in the FPGA interconnect. Note that capacitor 206 is
`
`
`
`
`
`
`implemented either as a separate circuit structure or as the
`
`
`
`
`
`gate of second passtransistor 209.
`
`
`
`
`
`
`
`The present invention significantly reduces area of the
`
`
`
`
`
`
`FPGA compared to the area required by SRAM cell 100
`
`
`
`
`
`
`because DRAM cell 200 stores state information in capaci-
`
`
`
`
`
`
`
`
`tor 206 (one device), whereas SRAM cell 100 stores state
`
`
`
`
`
`
`
`information in latch 106 (four devices). DRAM cell 200 also
`
`
`
`
`
`
`
`
`eliminates the need for separate power and groundlines (not
`
`
`
`
`
`
`
`
`shownin FIG. 1) that support SRAM cell 100 in the priorart,
`
`
`
`
`
`
`
`
`thereby reducing the number of lines within the FPGA.
`
`
`
`
`
`
`
`
`In accordance with the present invention, a plurality of
`DRAM cells are used to control the FPGA interconnect
`
`
`
`
`
`
`
`
`
`
`
`logic
`
`
`
`
`
`
`
`
`
`
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`
`
`
`
`
`
`
`
`60
`
`65
`
`5,847,577
`
`15
`
`20
`
`
`
`
`
`
`
`4
`
`
`
`
`
`
`
`circuitry. Another information store (shadow memory) per-
`
`
`
`
`
`
`
`
`forms a shadow memory function. The shadow memory can
`
`
`
`
`
`
`
`
`be composedof volatile memorycells (e.g., DRAM cells) or
`
`
`
`
`
`
`
`it can be composed of non-volatile memory cells. Example
`
`
`
`
`
`
`
`non-volatile memory constitution of the shadow memory
`
`
`
`
`
`
`
`includes read only memory (ROM), programmable ROM
`
`
`
`
`
`
`(PROM), erasable PROM (EPROM),electrically erasable
`
`
`
`
`
`PROM (EEPROM), or of non-volatile magnetic storage.
`
`
`
`
`
`
`
`
`In one embodiment using DRAM asthe shadow memory,
`
`
`
`
`
`
`
`
`the shadow memoryis typically organized with the same
`numberof bits and words as there are DRAM interconnect
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cells within the FPGA, i.e. there is a one-to-one correspon-
`dence between FPGA DRAM interconnectcells and shadow
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DRAM memory cells.
`In this embodiment wherein the
`
`
`
`
`
`
`
`shadow memory is DRAM memory, the shadow memory
`
`
`
`
`
`
`
`
`
`cells are the same as DRAM cell 200 (FIG.2), with the
`
`
`
`
`
`
`
`
`
`exception that pass transistor 209 is not required because the
`
`
`
`
`
`shadow memory has no control function.
`
`
`
`
`
`
`
`
`As is well knownto those in the art, while an SRAM cell
`
`
`
`
`
`
`
`
`
`maintains the state of its contents as long as poweris
`
`
`
`
`
`supplied, a DRAM cell needs periodic refreshing.
`FIG. 3 illustrates a DRAM interconnect control and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`refresh circuit 300 for an FPGA according to the present
`
`
`
`
`
`
`
`
`invention. A refresh cycle on a data word of the FPGA
`
`
`
`
`
`
`interconnect DRAM includesthe following steps:
`
`
`
`
`
`
`
`1. Initially, a conventional address sequencer and decoder
`
`
`
`
`
`
`303 (hereinafter “sequencer”) address a particular por-
`
`
`
`
`
`
`
`
`tion of the shadow memory 301. In one embodiment
`
`
`
`
`
`
`where the shadow memory is DRAM,the sequencer
`
`
`
`
`
`
`
`
`
`and decoder 303 pulls one shadow memoryaddressline
`
`
`
`
`
`
`
`
`302 high to select one word of a shadow memoryarray
`
`
`
`
`
`
`
`
`301. The contents of shadow memoryarray 301 for the
`
`
`
`
`
`
`current data word are sensed by a conventional sense
`
`
`
`
`
`
`
`
`
`circuit 308, and read into a data register 309.
`In
`
`
`
`
`
`
`
`embodiments of the present
`invention where the
`
`
`
`
`
`
`shadow memory 301is non-volatile, the conventional
`
`
`
`
`
`
`
`
`sense amplifier 308 can be eliminated and data can be
`
`
`
`
`
`
`
`
`written directly from memory 301 to the data register
`
`
`
`
`
`
`309. If shadow memory can be read non-destructively,
`
`
`
`
`
`
`
`
`the write back circuitry including buffer 306 can be
`eliminated.
`
`
`
`
`
`
`
`
`
`
`2. The contents of data register 309 are written back into
`
`
`
`
`
`
`
`
`
`the shadow memory array 301 viatri-state buffer 306
`
`
`
`
`
`
`
`(after passing through error detection and correction
`
`
`
`
`
`
`
`
`
`
`circuit 307) and these contents are also written into the
`
`
`
`
`
`
`FPGA interconnect and logic DRAM (hereinafter
`
`
`
`
`
`
`
`FPGA DRAM)310 via data line 311 to refresh FPGA
`
`
`
`
`
`
`
`DRAM 310. Shadow memory array 301 and FPGA
`
`
`
`
`
`
`DRAM 310 are written to simultaneously,
`
`
`
`
`
`
`independently, or at different intervals, as desired. A
`
`
`
`
`
`
`preferred embodiment of the present invention pro-
`
`
`
`
`
`
`vides a simultaneous shadow memoryandinterconnect
`
`
`
`
`
`
`DRAM refresh sequence.
`In that embodiment,
`
`
`
`
`
`
`
`sequencer 303 provides address information via lines
`
`
`
`
`
`
`
`
`
`302 to shadow memoryarray 301 andvia lines 312 to
`FPGA DRAM 310.
`
`
`
`
`
`
`
`
`
`3. Alow DATA VALIDsignal generated by a data valid
`
`
`
`
`
`
`
`circuit 305 (data valid generatorcircuit), is provided to
`
`
`
`
`
`
`
`
`
`
`ANDgates 304 to force the signals on bus 312 low. The
`
`
`
`
`
`
`
`DATA VALIDsignal is generated to remain low until
`
`
`
`
`
`
`
`
`
`the data read out of shadow memory array 301 is
`
`
`
`
`
`
`
`
`latched into data register 309, provided to error detec-
`
`
`
`
`
`
`
`
`tion and correction circuit 307, and propagated to the
`
`
`
`
`
`
`
`memory cells in FPGA DRAM 310. A high DATA
`
`
`
`
`
`
`
`VALID signal, provided totri-state buffer 306, allows
`
`
`
`
`
`
`
`
`
`the transfer of the data held in data register 309 back
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 8 of 11
`
`Page 8 of 11
`
`
`
`5,847,577
`
`
`
`
`
`
`
`10
`
`
`5
`
`
`
`
`
`
`into shadow memory array 301. In one embodiment,
`
`
`
`
`the DATA VALIDsignal is asserted in a predetermined
`
`
`
`
`
`
`
`delay period after the current address is presented over
`
`
`
`
`
`
`
`
`bus 312 by the address sequencer and decoder 303.
`
`
`
`
`
`
`
`
`
`Thus, the generation of the DATA VALID signal takes
`
`
`
`
`
`
`
`
`into consideration all internal timing and propagation con-
`siderations of the FPGA before FPGA DRAM 310 is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`refreshed, thereby ensuring that correct data is available to
`
`
`
`
`
`
`
`
`FPGA DRAM 310. The DATA VALID signal ensures that
`
`
`
`
`
`
`
`
`
`
`valid data is present over bus 321a during the write cycle
`
`
`
`
`
`
`
`when the FPGA DRAM 310 is updated so that transient
`
`
`
`
`
`
`
`
`garbageor invalid data is not written into the FPGA DRAM
`
`
`
`
`
`
`
`310. In this manner, the contents of FPGA DRAM 310 are
`
`
`
`
`
`
`
`
`not destroyed during the interval whenthe cell is written. A
`15
`
`
`
`
`
`
`
`
`high DATA VALID signal,
`indicating valid data, and a
`
`
`
`
`
`
`
`
`corresponding high signal on one of address lines 302 forces
`
`
`
`
`
`
`
`
`
`
`
`the output signal from ANDgates 304 (i.e. on line 312) high,
`
`
`
`
`
`
`
`thereby triggering a refresh cycle and allowing data to be
`
`
`
`
`
`
`
`
`written into the cells of FPGA DRAM 310. Note that a high
`
`
`
`
`
`
`
`
`DATA VALIDsignal, provided to tri-state buffer 306, per-
`
`
`
`
`
`
`
`
`
`mits transfer of the data held in data register 309 to shadow
`
`
`
`
`
`
`
`
`
`memory array 301. It is appreciated that data valid to 306
`and 304 need not be simultaneous.
`
`
`
`
`
`
`
`
`
`
`
`
`
`4. Sequencer 303 which controls the refresh sequence
`
`
`
`
`
`
`continuously cycles throughall addressesto ensure that
`
`
`
`
`
`
`
`all DRAM interconnect cells are regularly refreshed.
`
`
`
`
`
`
`
`
`
`
`It is appreciated that the shadow memoryarray 301, the
`
`
`
`
`
`
`
`
`
`
`address sequencer 303, the data valid circuit 305 and gate
`
`
`
`
`
`
`
`304 can be located off-chip in a separate die or device from
`30
`
`
`
`
`
`
`
`
`
`the FPGA integrated circuit device that contains the FPGA
`
`
`
`
`
`
`
`
`
`
`DRAM 310. In this case,
`the shadow memory array is
`
`
`
`
`
`
`interfaced to communicate the duplicate data to a receiving
`
`
`
`
`
`
`
`
`circuit (e.g., 308) during a refresh cycle. A numberof well
`
`
`
`
`
`
`
`known communication interface protocols and circuitry can
`
`
`
`
`
`
`
`
`be used for this alternative embodiment of the present
`
`
`
`
`
`
`
`
`invention. In this alternative embodiment,
`the data valid
`
`
`
`
`
`
`
`
`
`circuit 305 operates as discussed above and the address
`
`
`
`
`
`
`
`
`
`sequencer and decoder 303 address the shared memoryarray
`
`
`
`
`
`
`
`
`301 as discussed above. Gate 304 presents the address to
`
`
`
`
`
`
`
`receiving circuit 310 to refresh the FPGA DRAM 310 during
`
`
`
`
`
`
`a valid period of the refresh cycle.
`
`
`
`
`
`
`
`invention, DRAM
`In one embodiment of the present
`interconnect control and refresh circuit 300 includesan error
`
`
`
`
`
`
`
`
`detection and correction circuit 307 that minimizes data
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`integrity problems associated with alpha particle hits and
`
`
`
`
`
`
`
`
`other data disturbances of shadow memoryarray 301. Fur-
`
`
`
`
`
`
`
`
`
`ther description of the codes associated with this conven-
`
`
`
`
`
`
`
`tional circuit is provided in “Digital Design Principles and
`
`
`
`
`
`
`
`
`Practices” by J.F. Wakerly, pages 34-44, 1990, which is
`
`
`
`
`
`
`herein incorporated by reference. Although shown in con-
`
`
`
`
`
`
`
`nection with the preferred embodiment of the invention,
`error detection and correction circuit 37 is considered
`
`
`
`
`
`
`
`
`optional.
`
`
`
`
`
`
`
`In contrast to FRGA DRAM 310 which providesa single
`
`
`
`
`
`
`
`
`storage cell at each PIP and therefore is distributed through-
`
`
`
`
`
`
`
`
`out the FPGA, shadow memoryarray 301 is preferably a
`
`
`
`
`
`
`
`
`
`standard DRAM array and can therefore be very dense.
`
`
`
`
`
`
`
`
`Shadow memory array 301 is typically built far enough
`
`
`
`
`
`
`
`
`
`awayfrom linesthat carry currents sufficiently high to cause
`60
`
`
`
`
`
`
`
`DRAM storage problems. In this manner, the contents of
`
`
`
`
`
`
`
`
`
`shadow memory array 301 are not disturbed by any FPGA
`
`
`
`
`
`
`
`
`signal, thereby avoiding upset problems and other related
`
`
`
`
`
`
`
`
`
`interference that might affect the cells of shadow memory
`
`
`
`
`
`
`
`
`
`
`In this way, any errors introduced into the
`array 301.
`
`
`
`
`
`
`
`
`
`memory cells of FPGA DRAM 310, for example by the
`
`
`
`
`
`
`
`routing of various signals through the general interconnect
`
`
`
`
`
`
`
`of the FPGA,are readily corrected by shadow memoryarray
`
`20
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 9 of 11
`
`
`
`
`6
`
`
`
`
`
`
`
`
`301 during the next refresh cycle. In another embodiment,
`
`
`
`
`
`
`
`
`each cell of the shadow memory array is built at the same
`location as its associated FPGA DRAM interconnect cell.
`
`
`
`
`
`
`
`
`
`
`
`
`
`One embodiment of the shadow memoryarray includes
`
`
`
`
`
`
`
`DRAM cells because of the compact size of such arrays. In
`one embodiment of an FPGA in accordance with the
`
`
`
`
`
`
`
`
`
`
`
`
`
`invention, a shadow memory array having approximately
`
`
`
`
`
`
`100,000cells is used. In other embodiments of the invention,
`
`
`
`
`
`
`
`
`the shadow memory array uses other technologies. For
`
`
`
`
`
`
`
`
`example, the shadow memory array could be an SRAM,
`
`
`
`
`
`
`EPROM, EEPROM,flash EPROM,or ferroelectric array.
`
`
`
`
`
`
`
`
`Although the shadow memoryarray is integrated onto the
`
`
`
`
`
`
`
`
`same die as the FPGA in typical embodiments of the
`
`
`
`
`
`
`
`invention, other shadow memoryarrays are fabricated on a
`
`
`
`
`
`
`
`
`separate die. Finally,
`in yet another embodiment of the
`
`
`
`
`
`
`
`present invention, a shadow memory is provided for use
`
`
`
`
`
`
`
`
`with standard SRAM interconnect cells, such that these
`
`
`
`
`
`
`
`interconnect cells are periodically refreshed to repair any
`
`
`
`
`
`
`
`
`errors that resulted from factors such as power surges.
`
`
`
`
`
`
`
`
`
`It is appreciated that more than one read and write cycle
`
`
`
`
`
`
`
`can be applied to shadow memory301to collect enoughbits
`for one full FPGA DRAM address.
`In this alternative
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`embodiment, a second register 350 is used to store the full
`FPGA DRAM word.
`
`
`
`
`
`
`
`
`
`
`
`The present invention is also intended for other applica-
`
`
`
`
`
`tions in programmable or configurable devices in which a
`
`
`
`
`
`
`
`
`
`logic state is set and stored. For example, FIG. 4 illustrates
`
`
`
`
`
`
`
`
`
`a prior art logic configuration circuit that includes a plurality
`
`
`
`
`
`
`
`
`of storage elements 400 whichstore logic states A, B, C and
`
`
`
`
`
`
`
`
`
`D. These logic states, which determine the logic function
`
`
`
`
`
`
`performed by the circuit, are provided to a multiplexer 401
`
`
`
`
`
`
`
`
`
`
`via lines 402, 403, 404 and 405. Multiplexer 401 consists of
`
`
`
`
`
`
`
`
`
`a first set of transistors 410, 411, 412, 413 that are controlled
`
`
`
`
`
`
`
`
`
`by signal I1 provided on a first input line 407, and a second
`
`
`
`
`
`
`
`
`set of transistors 414, 415 that are controlled by a signal I2
`
`
`
`
`
`
`
`
`
`provided on a second input line 408. The signals on first
`
`
`
`
`
`
`
`
`
`
`
`
`input line 407 and secondinput line 408 select the logic state
`
`
`
`
`
`
`
`
`
`
`bit that is the function value on outputline 406. For example,
`
`
`
`
`
`
`
`
`
`
`assume logic states B, C, and D are a logic “0” and logic
`
`
`
`
`
`
`
`
`state A is a logic “1”. Multiplexer 401 selects logic state A
`
`
`
`
`
`
`
`
`
`whenboth signals I1 and I2 are a logic “1”, the function of
`
`
`
`
`
`
`
`the circuit is an AND gate because the function produces a
`
`
`
`
`
`
`
`
`
`
`
`logic “1” only when both inputs are a logic “1”, and the
`
`
`
`
`
`
`
`
`circuit produces a logic “0”if either of the signals provided
`
`
`
`
`
`
`on input lines 407, 408 is otherwise.
`
`
`
`
`
`
`
`
`Prior art storage elements 400 are typically SRAM cells
`
`
`
`
`
`
`and, as such, are relatively stable. However, as discussed
`
`
`
`
`
`
`
`above, SRAM cells require considerable area on an inte-
`
`
`grated circuit.
`
`
`
`
`
`
`
`As is known in the art, a DRAM cell cannot source a
`
`
`
`
`
`
`
`
`current for a logic operation because drawing current from
`
`
`
`
`
`
`
`
`
`
`the DRAM cell depletes the charge stored in the cell and thus
`
`
`
`
`
`
`
`
`
`
`may change the state of the cell. Thus,.a DRAM cell may
`
`
`
`
`
`
`
`only store a logic state. Therefore, if a DRAM cell is used
`
`
`
`
`
`
`
`
`
`
`for storage cell 400, the contents of the DRAM cell are lost
`
`
`
`
`
`
`
`whenthe cell is sensed. For example, a DRAM cell cannot
`
`
`
`
`
`
`
`
`
`
`drive an input line of a steering logic multiplexer and s