throbber
US00584ATSTIA
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket