Electronic digital logic circuitry – Multifunctional or programmable – Array
Reexamination Certificate
2003-01-24
2004-09-28
Tokar, Michael (Department: 2819)
Electronic digital logic circuitry
Multifunctional or programmable
Array
C326S041000
Reexamination Certificate
active
06798240
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates to logic elements for use with programmable logic devices or other similar devices.
Programmable logic devices (“PLDs”) (also sometimes referred to as CPLDs, PALs, PLAs, FPLAs, EPLDs, EEPLDs, LCAs, FPGAs, or by other names), are well-known integrated circuits that provide the advantages of fixed integrated circuits with the flexibility of custom integrated circuits. Such devices are well known in the art and typically provide an “off the shelf” device having at least a portion that can be electrically programmed to meet a user's specific needs. Application specific integrated circuits (“ASICs”) have traditionally been fixed integrated circuits, however, it is possible to provide an ASIC that has a portion or portions that are programmable; thus, it is possible for an integrated circuit device to have qualities of both an ASIC and a PLD. The term PLD as used herein will be considered broad enough to include such devices.
PLDs typically include blocks of logic elements, sometimes referred to as logic array blocks (“LABs”; also referred to by other names, e.g., “configurable logic blocks,” or “CLBs”). Logic elements (“LEs”, also referred to by other names, e.g., “logic cells”) may include a look-up table (LUT) or product term, carry-out chain, register, and other elements.
Logic elements, including look-up table (LUT)-based logic elements, typically include configurable elements holding configuration data that determines the particular function or functions carried out by the logic element. A typical LUT circuit may include ram bits that hold data (a “1” or “0”). However, other types of configurable elements may be used. Some examples may include static or dynamic random access memory, electrically erasable read-only memory, flash, fuse, and anti-fuse programmable connections. The programming of configuration elements could also be implemented through mask programming during fabrication of the device. While mask programming may have disadvantages relative to some of the field programmable options already listed, it may be useful in certain high volume applications. For purposes herein, the generic term “memory element” will be used to refer to any programmable element that may be configured to determine functions implemented by a PLD.
A typical LUT circuit used as a logic element provides an output signal that is a function of multiple input signals. The particular logic function may be determined by programming the LUT's memory elements. As will be explained further herein (see FIG.
1
and accompanying text), a typical LUT circuit may be represented as a plurality of memory elements coupled to a “tree” of 2:1 muxes. The LUT mux tree includes a first level comprising a single 2:1 mux providing the LUT output and also includes successive additional levels of muxes, each level including twice as many muxes as the previous level and the number of memory elements being twice as many as the number of 2:1 muxes in a last mux level coupled to the memory elements. Each 2:1 mux level provides a logic input to the LUT circuit coupled to control inputs of the muxes at that mux level. Thus, to obtain an n-input LUT (or “nLUT”) typically requires 2
n
memory elements and 2
n
muxes. Adding an input to an nLUT circuit to provide an n+1 input LUT (“(n+1)LUT”) therefore typically requires providing a total of 2
n+1
memory elements and (2
n+1
−1)muxes, i.e., approximately a doubling of resources relative to that required by an nLUT.
For many applications, the functions that need to be implemented by a first LUT circuit and a second LUT circuit are identical. Also, for some applications, it may be possible for inputs of first and second LUT circuits to be shared without reducing the functionality required by the application. In such instances, there are opportunities that need to be maximized for sharing resources to reduce the total number of memory elements and muxes that would otherwise be required.
In other instances, while also minimizing resources, it is useful to have the flexibility to switch between two nLUT circuits that maybe independently programmed to implement n-input functions and two (n+1)LUT circuits that can be programmed to implement the same n+1-input functions. It may also be desirable to, with minimal added resources, also have the added flexibility to select an additional option such as, for example, two LUT circuits that can implement at least some functions of n+2 inputs.
SUMMARY OF THE INVENTION
One embodiment of the present invention provides a shared-LUT logic circuit that provides the functionality of two (n+1)LUT logic circuits without requiring twice the resources of two nLUT circuits. Another embodiment of the present invention provides a shared-LUT logic circuit that may be configured to provide either the functionality of two nLUT circuits that may be independently programmed to provide n-input functions or the functionality of two (n+1)LUT circuits that may be programmed to provide the same n+1-input functions. Another embodiment of the present invention provides a shared-LUT logic circuit that may be configured to provide one of the following: (i) two nLUT circuits that may be programmed to provide independent n-input functions; (ii) two (n+1)LUT circuits that may be programmed to provide the same n+1-input functions; or (iii) two (n+2)LUT circuits that may be programmed to provide limited related n+2-input functions. In these and other illustrated embodiments, a plurality of muxes is interposed between an x and an x+1 mux level of first and second nLUT circuitry to implement sharing of at least some of the nLUT circuitry, thereby providing first and second (n+1)LUT circuits and variations thereon. In yet another embodiment, a plurality of muxes is interposed between a last mux level and memory elements of first and second nLUT circuitry to provide two (n+1)LUT circuits that do not require shared inputs and may be programmed to provide two independent n+1-input functions.
REFERENCES:
patent: 5260610 (1993-11-01), Pedersen et al.
patent: 5260611 (1993-11-01), Cliff et al.
patent: 5274581 (1993-12-01), Cliff et al.
patent: 5295090 (1994-03-01), Hsieh et al.
patent: 5349250 (1994-09-01), New
patent: 5359242 (1994-10-01), Veenstra
patent: 5359468 (1994-10-01), Rhodes et al.
patent: 5365125 (1994-11-01), Goetting et al.
patent: 5436575 (1995-07-01), Pedersen et al.
patent: 5481206 (1996-01-01), New et al.
patent: 5481486 (1996-01-01), Cliff et al.
patent: 5483478 (1996-01-01), Chiang
patent: 5485103 (1996-01-01), Pedersen et al.
patent: 5488316 (1996-01-01), Freeman et al.
patent: 5500608 (1996-03-01), Goetting et al.
patent: 5523963 (1996-06-01), Hsieh et al.
patent: 5546018 (1996-08-01), New et al.
patent: 5629886 (1997-05-01), New
patent: 5631576 (1997-05-01), Lee et al.
patent: 5672985 (1997-09-01), Lee
patent: 5675262 (1997-10-01), Duong et al.
patent: 5724276 (1998-03-01), Rose et al.
patent: 5761099 (1998-06-01), Pedersen
patent: 5818255 (1998-10-01), New et al.
patent: 5825662 (1998-10-01), Trimberger
patent: 5889411 (1999-03-01), Chaudhary
patent: 5898318 (1999-04-01), Pedersen
patent: 5898319 (1999-04-01), New
patent: 5898602 (1999-04-01), Rothman et al.
patent: 5905385 (1999-05-01), Sharpe-Geisler
patent: 5909126 (1999-06-01), Cliff et al.
patent: 5920202 (1999-07-01), Young et al.
patent: 5926036 (1999-07-01), Cliff et al.
patent: 5999016 (1999-12-01), McClintock et al.
patent: 6021423 (2000-02-01), Nag et al.
patent: 6051992 (2000-04-01), Young et al.
patent: 6107827 (2000-08-01), Young et al.
patent: 6118300 (2000-09-01), Wittig et al.
patent: 6154052 (2000-11-01), New
patent: 6154053 (2000-11-01), New
patent: 6154055 (2000-11-01), Cliff et al.
patent: 6157209 (2000-12-01), McGettigan
patent: 6184707 (2001-02-01), Norman et al.
patent: 6191610 (2001-02-01), Wittig et al.
patent: 6191611 (2001-02-01), Altaf
patent: 6201408 (2001-03-01), Skahill et al.
patent: 6288568 (2001-09-01), Bauer e
Altera Corporation
Morrison & Foerster / LLP
Nguyen Linh V
Tokar Michael
LandOfFree
Logic circuitry with shared lookup table does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Logic circuitry with shared lookup table, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Logic circuitry with shared lookup table will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3250822