US5386156A - Programmable function unit with programmable fast ripple logic - Google Patents

Programmable function unit with programmable fast ripple logic Download PDF

Info

Publication number
US5386156A
US5386156A US08/113,154 US11315493A US5386156A US 5386156 A US5386156 A US 5386156A US 11315493 A US11315493 A US 11315493A US 5386156 A US5386156 A US 5386156A
Authority
US
United States
Prior art keywords
signal
multiplexer
output
carry
inputs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/113,154
Inventor
Barry K. Britton
Wai-Bor Leung
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Lattice Semiconductor Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Priority to US08/113,154 priority Critical patent/US5386156A/en
Assigned to AMERICAN TELEPHONE AND TELEGRAPH COMPANY reassignment AMERICAN TELEPHONE AND TELEGRAPH COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEUNG, WAI-BOR, BRITTON, BARRY KEVIN
Application granted granted Critical
Publication of US5386156A publication Critical patent/US5386156A/en
Assigned to AGERE SYSTEMS GUARDIAN CORP. reassignment AGERE SYSTEMS GUARDIAN CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LUCENT TECHNOLOGIES INC.
Assigned to LATTICE SEMICONDUCTOR CORPORATION reassignment LATTICE SEMICONDUCTOR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AGERE SYSTEMS GUARDIAN CORPORATION
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables

Definitions

  • This invention relates to programmable logic devices in general, and has particular applicability to field programmable gate arrays which utilize programmable function units (PFUs).
  • PFUs programmable function units
  • FIG. 1 depicts a programmable function unit (PFU) (also termed in the art a configurable logic block).
  • PFU programmable function unit
  • Reference numeral 13 denotes an 8-bit look-up table which has three inputs denoted by reference numerals 19, 21, and 23, respectively A 0 , B 0 , and the output of multiplexer 15.
  • Multiplexer 15 receives inputs C in and C 0 denoted by reference numerals 17 and 35, respectively.
  • the output of look-up table 13 is carried on line 25, denoted by Output 0 .
  • Look-up table 13 is pre-programmed to perform a predetermined function of the three inputs on lines 19, 21 and 23, and to provide an output designated Output 0 on line 25.
  • look-up tables such as table 13, perform general combinatorial or control logic, RAM or data path functions based upon the inputs A 0 , B 0 and C 0 .
  • additional inputs to look-up table (LUT) 13 may be provided, and the size of the look-up table increased. For example, if one more input is provided, the LUT 13 may be a 16 bit LUT.
  • fast-carry logic In order to increase the speed of data path functions, fast-carry logic is implemented.
  • This hard-wired fast-carry operation is provided by a hard-wired logic 27 which has three inputs A 0 and B 0 and C in , reference numerals 19, 21 and 17, respectively.
  • This hard-wired carry logic 27 may also receive additional signals used to implement higher-level functions.
  • multiplexer 15 selects C in as the third input to LUT 13.
  • block 28 receives three inputs, A 0 (19), B 0 (21), and C in (17) and produces Output 0 together with a carry-out signal 18 produced by hard-wired logic 27 as a function of A 0 (19), B 0 (21), and C in , (17).
  • This carry-out signal may be used as the carry-in signal to the next block 29.
  • each block, 28, can perform a single bit of a fast data path operation.
  • blocks such as 28, 29 can be cascaded as needed, thereby creating an n-bit data path function.
  • Typical FPGA PFUs may contain one to eight blocks configured similar to block 28 and linked by carry signals in a manner akin to signal 18 between blocks 28 and 29.
  • the logic employed in reference numeral 27 is termed "fast-carry logic.”
  • One disadvantage to the configuration depicted in FIG. 1 is that the logic in block 27 is hard-wired. Consequently, there is no flexibility in determining the output (e.g., 18) of the fast-carry operation.
  • logic function 27 may consume a significant amount of silicon real estate.
  • a programmable function unit (PFU) well adapted for use in a field programmable gate array (FPGA) is disclosed.
  • the PFU utilizes programmable fast ripple logic.
  • a programmable generator and a programmable propagator are each implemented in look-up tables in each block.
  • a multiplexer under control of the propagator determines whether to transmit the carry-out from the previous block or to transmit the generator signal.
  • FIG. 1 is a schematic diagram of a prior art programmable function unit
  • FIGS. 2-4 are schematic diagrams of an illustrative embodiment of the present invention.
  • An advantage of the present invention is that it permits the fast-carry logic to be programmable.
  • the logic can perform ripple-type functions other than a fast-carry.
  • reference numeral 120 denotes a 16-bit look-up table which may be partitioned into two eight-bit look-up tables 122 and 124, respectively, depending upon the mode of operation desired. (By contrast, the system of FIG. 1 contains only one look-up table per block.) As will be explained below, each 16 bit look-up table can be utilized (together with a multiplexer) to perform any function of four inputs (when not in the ripple mode).
  • carry-in signal 117 is multiplexed in multiplexer 115 with input signal C 0 denoted by reference numeral 125.
  • the output of look-up table 124, denoted by reference numeral 125, is Out 0 .
  • the output of look-up table 122, denoted by reference numeral 130 is a propagate signal, PROP 0 .
  • PROP 0 is used as a programmable propagate signal.
  • Programmable signal 130 is input to multiplexer 128.
  • the propagate signal controls multiplexer 128 to determine whether carry-in signal 117 should be "propagated,"i.e., passed through as a carry-out signal 134. (As will be explained below, the carry-out signal of one block becomes the carry-in signal of another block.)
  • Look-up table 132 provides a means for generating such a signal, 135.
  • look-up table 132 is an 8-bit look-up table.
  • inputs to look-up table 132 are signal A 0 denoted by reference numeral 119, signal B 0 denoted by reference numeral 121, and carry-in signal denoted by reference numeral 117 (which are the same inputs to look-up tables 122 and 124).
  • Look-up table 132 then produces a "generate" signal 135 which is input to multiplexer 128.
  • reference numeral 132 may designate a four-bit look-up table which calculates a generate signal based only upon A 0 and B 0 .
  • look-up tables 122 and 124 may be each used to calculate a function of three inputs, A 0 , B 0 , and C 0 (no use is made of C in signal 117 because when the ripple control signal 143 is off ("0"), multiplexer 115 transmits signal C 0 125 and suppresses C in 117.
  • the output of look-up table 122 is carried on signal 130 to multiplexer 126.
  • the output of look-up table 124 is carried on signal 125, also to multiplexer 126.
  • the control signal for multiplexer 126 is received from the output 140 of OR gate 141.
  • Inputs to OR gate 141 are signal D 0 142 and ripple mode signal 143. If ripple control signal 143 is off ("0"), the output of OR gate 141 is D 0 . Multiplexer 126 then provides output 145 which is thereby any function of four inputs A 0 , B 0 , C 0 , and D 0 .
  • PFU Output 0 is based upon look-up tables 122 and 124, both of which have inputs A 0 , B 0 , and C 0 , as well as the signal D 0 which controls the multiplexer 126.
  • a second advantage is that the look-up table creating the propagate function 130 is used in both ripple mode and non-ripple mode.
  • the look-up table 132 used to create the generate function is only used during ripple mode.
  • FIG. 3 depicts a configuration similar to that shown in FIG. 2.
  • programmable look-up table 132 has been replaced by hard-wired logic 200 having inputs A 0 119, B 0 121, and C in 117.
  • the general PFU output and propagate portions of the circuit of FIG. 3 are the same as FIG. 2. However, the generate portion of the circuit is hard-wired to perform only a small number of functions.
  • FIG. 4 illustrates an embodiment with four blocks with hard-wired combinatorial generate logic, 401, 402, 403 and 404.
  • the general PFU output, generate, and propagate functions for each block are similar to those described in detail in connection with FIG. 2.
  • the circuit of FIG. 4 features a very fast PFU carry-out on output 311.
  • the PFU C in signal 417 is propagated immediately to the PFU C out signal 311 through multiplexer 302 without passing through the fast carry logic in each block, thus decreasing the PFU C in to PFU C out delay. If any of the four propagate signals are "0", then the multiplexer 302 selects the carry out from the last stage 817, thus producing the PFU C out signal 311 in the same manner as in FIG. 3.

Abstract

A programmable function unit (PFU) well adapted for use in a field programmable gate array (FPGA) is disclosed. The PFU utilizes programmable fast ripple logic. A programmable generator and/or a programmable propagator are implemented in look up tables in each PFU block. A multiplexer under control of the propagator determines whether to transmit the carry in from the previous block or to transmit the generator signal.

Description

TECHNICAL FIELD
This invention relates to programmable logic devices in general, and has particular applicability to field programmable gate arrays which utilize programmable function units (PFUs).
BACKGROUND OF THE INVENTION
FIG. 1 depicts a programmable function unit (PFU) (also termed in the art a configurable logic block).
Reference numeral 13 denotes an 8-bit look-up table which has three inputs denoted by reference numerals 19, 21, and 23, respectively A0, B0, and the output of multiplexer 15. Multiplexer 15 receives inputs Cin and C0 denoted by reference numerals 17 and 35, respectively. The output of look-up table 13 is carried on line 25, denoted by Output0.
Look-up table 13 is pre-programmed to perform a predetermined function of the three inputs on lines 19, 21 and 23, and to provide an output designated Output0 on line 25. In general look-up tables, such as table 13, perform general combinatorial or control logic, RAM or data path functions based upon the inputs A0, B0 and C0. If desired, additional inputs to look-up table (LUT) 13 may be provided, and the size of the look-up table increased. For example, if one more input is provided, the LUT 13 may be a 16 bit LUT.
In order to increase the speed of data path functions, fast-carry logic is implemented. This hard-wired fast-carry operation is provided by a hard-wired logic 27 which has three inputs A0 and B0 and Cin, reference numerals 19, 21 and 17, respectively. This hard-wired carry logic 27 may also receive additional signals used to implement higher-level functions. Also, in this mode (termed a "ripple mode") multiplexer 15 selects Cin as the third input to LUT 13. Thus, in the ripple mode, block 28 receives three inputs, A0 (19), B0 (21), and Cin (17) and produces Output0 together with a carry-out signal 18 produced by hard-wired logic 27 as a function of A0 (19), B0 (21), and Cin, (17). This carry-out signal may be used as the carry-in signal to the next block 29. Thus, each block, 28, can perform a single bit of a fast data path operation.
Similar functionality is provided in block 29 producing an Output1 denoted by reference numeral 31 and a carry output Cout denoted by reference numeral 33. Generally, blocks such as 28, 29 can be cascaded as needed, thereby creating an n-bit data path function. Typical FPGA PFUs may contain one to eight blocks configured similar to block 28 and linked by carry signals in a manner akin to signal 18 between blocks 28 and 29.
The logic employed in reference numeral 27 is termed "fast-carry logic." One disadvantage to the configuration depicted in FIG. 1 is that the logic in block 27 is hard-wired. Consequently, there is no flexibility in determining the output (e.g., 18) of the fast-carry operation. In addition, logic function 27 may consume a significant amount of silicon real estate.
SUMMARY OF THE INVENTION
A programmable function unit (PFU) well adapted for use in a field programmable gate array (FPGA) is disclosed. The PFU utilizes programmable fast ripple logic. A programmable generator and a programmable propagator are each implemented in look-up tables in each block. A multiplexer under control of the propagator determines whether to transmit the carry-out from the previous block or to transmit the generator signal.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of a prior art programmable function unit; and
FIGS. 2-4 are schematic diagrams of an illustrative embodiment of the present invention.
DETAILED DESCRIPTION
An advantage of the present invention is that it permits the fast-carry logic to be programmable. Thus, the logic can perform ripple-type functions other than a fast-carry.
Turning to FIG. 2, reference numeral 120 denotes a 16-bit look-up table which may be partitioned into two eight-bit look-up tables 122 and 124, respectively, depending upon the mode of operation desired. (By contrast, the system of FIG. 1 contains only one look-up table per block.) As will be explained below, each 16 bit look-up table can be utilized (together with a multiplexer) to perform any function of four inputs (when not in the ripple mode).
In operation, carry-in signal 117 is multiplexed in multiplexer 115 with input signal C0 denoted by reference numeral 125. The output 116 of multiplexer 115, together with inputs A0 and B0, denoted by reference numerals 119 and 121, is provided to both look-up tables 124 and 122, respectively.
The output of look-up table 124, denoted by reference numeral 125, is Out0. The output of look-up table 122, denoted by reference numeral 130 is a propagate signal, PROP0. In the ripple mode, PROP0 is used as a programmable propagate signal. Programmable signal 130 is input to multiplexer 128. The propagate signal controls multiplexer 128 to determine whether carry-in signal 117 should be "propagated,"i.e., passed through as a carry-out signal 134. (As will be explained below, the carry-out signal of one block becomes the carry-in signal of another block.)
Under various circumstances, the user may not want carry-in signal, Cin, 117 to propagate to the next block (i.e., to line 134). With the present invention, it is possible, if desired, to separately generate a signal based on other signals as well as C in 117 and send this generated signal to output 134 rather than the carry-in signal, Cin, 117. Look-up table 132 provides a means for generating such a signal, 135. In this embodiment, look-up table 132 is an 8-bit look-up table. Also, in this embodiment, inputs to look-up table 132 are signal A0 denoted by reference numeral 119, signal B0 denoted by reference numeral 121, and carry-in signal denoted by reference numeral 117 (which are the same inputs to look-up tables 122 and 124). Look-up table 132 then produces a "generate" signal 135 which is input to multiplexer 128. Multiplexer 128, under the control of propagate signal 130, determines whether the carry-in signal 117 or the generate signal 1235 will be applied to output 134. Consequently, the output of multiplexer 128 can be any function desired by the programmer. Such flexibility is absent from the hard-wired logic governed system of FIG. 1.
In an alternative embodiment, reference numeral 132 may designate a four-bit look-up table which calculates a generate signal based only upon A0 and B0.
If not in the ripple mode (Ripple Mode="0"), the configuration as shown in FIG. 2 may be used to calculate any function of four inputs. For example, look-up tables 122 and 124 may be each used to calculate a function of three inputs, A0, B0 , and C0 (no use is made of Cin signal 117 because when the ripple control signal 143 is off ("0"), multiplexer 115 transmits signal C 0 125 and suppresses C in 117. The output of look-up table 122 is carried on signal 130 to multiplexer 126. The output of look-up table 124 is carried on signal 125, also to multiplexer 126. The control signal for multiplexer 126 is received from the output 140 of OR gate 141. Inputs to OR gate 141 are signal D 0 142 and ripple mode signal 143. If ripple control signal 143 is off ("0"), the output of OR gate 141 is D0. Multiplexer 126 then provides output 145 which is thereby any function of four inputs A0, B0, C0, and D0.
When in Ripple Mode (Ripple Mode="1"), the multiplexer 126 always selects OUT 0 125 and places it onto PFU Output 0 145. Thus in ripple mode, PFU Output0 is based upon the output of the LUT 124, having inputs A0, B0, and Cin. When not in Ripple Mode (Ripple Mode="0"), the multiplexer 126 selects between OUT 0 125 and PROP 0 130 and places it onto PFU Output 0 145, based upon the value of D0. Thus when not in Ripple Mode (Ripple Mode="0"), PFU Output0 is based upon look-up tables 122 and 124, both of which have inputs A0, B0, and C0, as well as the signal D0 which controls the multiplexer 126.
The functionality just described indicated in FIG. 2 below dotted line 100 may be repeated as many times as desired. Above line 100 in FIG. 2 a similar cell is provided. Two 8-bit (or one 16-bit) look-up tables 222, 224 receive inputs A1 and B1 together with input 216 from multiplexer 215. Multiplexer 215 receives inputs C1 235 and Cin which is denoted by reference numeral 134. Signal 134 is termed the "carry-out" from multiplexer 128 and also termed the "carry-in" to multiplexer 215. Thus, signal 134 provides a link between individual blocks of the PFU. A typical modern PFU contains four blocks similar to that just described in FIG. 2 below dotted line 100. If desired, other inputs may be provided to both look-up tables 120 and 132. For example, additional control signals which govern whether look-up tables 120 and/or 122 may perform addition or subtraction under user control may be added.
One advantage of the new PFU over previous PFUs is that the carry signal has programmable functionality. A second advantage is that the look-up table creating the propagate function 130 is used in both ripple mode and non-ripple mode. The look-up table 132 used to create the generate function is only used during ripple mode.
Thus, to save on PFU size, another embodiment of the present invention is depicted in FIG. 3. In general, the circuit illustrated in FIG. 3 is a physically smaller version of the fast programmable generate/propagate depicted in FIG. 2. Thus, a major advantage of the previously-described programmable generate/propagate circuit, namely speed, is maintained, while an area savings is realized as well. A disadvantage is that the generate portion of the circuit is not as programmable as before. FIG. 3 depicts a configuration similar to that shown in FIG. 2. However, programmable look-up table 132 has been replaced by hard-wired logic 200 having inputs A0 119, B 0 121, and C in 117.
The general PFU output and propagate portions of the circuit of FIG. 3 are the same as FIG. 2. However, the generate portion of the circuit is hard-wired to perform only a small number of functions.
FIG. 4 illustrates an embodiment with four blocks with hard-wired combinatorial generate logic, 401, 402, 403 and 404. In FIG. 4, the general PFU output, generate, and propagate functions for each block are similar to those described in detail in connection with FIG. 2. In addition, the circuit of FIG. 4 features a very fast PFU carry-out on output 311.
If all four of the propagate functions PROP0, PROP1, PROP2 and PROP3 (430, 530, 630 and 730, respectively), are set to "1", then all four blocks would propagate their carry-in to their carry-out. This would ultimately propagate the PFU Cin 417 to the PFU C out 311. Therefore a faster PFU Cin 417 to PFU C out 311 delay can be obtained by using AND gate 300, which controls multiplexer 302. The four inputs to AND gate 300 are the four propagate signals PROP0, PROP1, PROP2 and PROP3. If all four of these signals are set to "1", then the PFU Cin signal 417 is propagated immediately to the PFU Cout signal 311 through multiplexer 302 without passing through the fast carry logic in each block, thus decreasing the PFU Cin to PFU Cout delay. If any of the four propagate signals are "0", then the multiplexer 302 selects the carry out from the last stage 817, thus producing the PFU Cout signal 311 in the same manner as in FIG. 3.

Claims (10)

We claim:
1. An integrated circuit comprising at least one programmable function unit block having:
a look-up table having at least three inputs, one of which is termed a carry-in signal and producing at least two outputs, one of said outputs being termed a propagate signal; and one of said outputs being termed an output signal;
programmable means for generating a function of at least a subset of said inputs to said look-up table, said means producing an output termed a generate signal;
a multiplexer, operating under the control of said propagate signal, said multiplexer having at least two inputs, one of said inputs being said generate signal and one of said inputs being said carry-in signal and said multiplexer producing at least one output signal termed the carry-out signal.
2. The device of claim 1 in which said look-up table includes first and second eight bit look-up tables, said first eight bit look-up table producing said propagate signal.
3. The device of claim 1 in which said programmable means for creating the generate signal is a look-up table.
4. The device of claim 1 further including an input multiplexer operating under control of an external ripple signal and receiving said carry-in signal and at least one other input signal, the output of the multiplexer being an input to said look up table.
5. The device of claim 1 further including an output multiplexer operating under control of an external ripple signal and receiving said propagate signal and said output signal from said look-up table, said output multiplexer providing an output signal for said programmable function unit.
6. The device of claim 5 further including an OR gate connected to said output multiplexer, to control the operation of said multiplexer, said OR gate having at least two input signals, one of said input signals being said external ripple signal.
7. The device in claim 1 further including a second programmable function unit block, the carry-in signal of said second programmable function unit block being the carry-out signal of said first programmable function unit block.
8. An integrated circuit comprising at least first and second programmable function unit (PFU) blocks;
each of said blocks having:
a) a respective look-up table having at least three inputs, one of which is termed a carry-in signal and producing at least two outputs, one of said outputs being termed a propagate signal, and one of said outputs being termed an output signal;
b) programmable means for generating a function of at least a subset of said inputs to said look-up table, said means producing an output termed a generate signal; and
c) a multiplexer, operating under the control of said propagate signal, said multiplexer having at least two inputs, one of said inputs being said generate signal, and one of said inputs being said carry-in signal, and said multiplexer producing at least one output signal termed the carry-out signal;
the said carry-out output of the said multiplexer of said first PFU block being the said carry-in input to said second PFU block.
9. The device of claim 8 in which each said PFU block further includes a second multiplexer, operating under control of said external ripple mode signal, said second multiplexer having said propagate signal and said output of said look-up table as inputs and producing an output signal for said programmable function unit.
10. The device of claim 8 further including an AND gate having said propagate signals from first and second PFU blocks as inputs and producing an output termed a "fast propagate control," and further including a third multiplexer, operating under the control of said fast propagate control signal, said third multiplexer having two inputs, one of said inputs being the said carry-out output of said first multiplexer of said second PFU block and the other of said inputs being the said carry-in signal input to said first multiplexer of said first block, said third multiplexer producing a single carry-out output.
US08/113,154 1993-08-27 1993-08-27 Programmable function unit with programmable fast ripple logic Expired - Lifetime US5386156A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/113,154 US5386156A (en) 1993-08-27 1993-08-27 Programmable function unit with programmable fast ripple logic

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/113,154 US5386156A (en) 1993-08-27 1993-08-27 Programmable function unit with programmable fast ripple logic

Publications (1)

Publication Number Publication Date
US5386156A true US5386156A (en) 1995-01-31

Family

ID=22347859

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/113,154 Expired - Lifetime US5386156A (en) 1993-08-27 1993-08-27 Programmable function unit with programmable fast ripple logic

Country Status (1)

Country Link
US (1) US5386156A (en)

Cited By (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0707382A3 (en) * 1994-09-20 1996-05-22 Xilinx Inc
US5559450A (en) * 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5570039A (en) * 1995-07-27 1996-10-29 Lucent Technologies Inc. Programmable function unit as parallel multiplier cell
US5623217A (en) * 1996-02-26 1997-04-22 Lucent Technologies Inc. Field programmable gate array with write-port enabled memory
WO1997044730A1 (en) * 1996-05-20 1997-11-27 Atmel Corporation Field programmable gate array with distributed ram and increased cell utilization
US5753545A (en) * 1994-12-01 1998-05-19 Hughes Electronics Corporation Effective constant doping in a graded compositional alloy
WO1998023033A1 (en) * 1996-11-22 1998-05-28 Xilinx, Inc. Lookup tables which double as shift registers
US5818255A (en) * 1995-09-29 1998-10-06 Xilinx, Inc. Method and circuit for using a function generator of a programmable logic device to implement carry logic functions
WO1998051013A1 (en) * 1997-05-09 1998-11-12 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US5905385A (en) * 1997-04-01 1999-05-18 Advanced Micro Devices, Inc. Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA)
US5926036A (en) * 1991-09-03 1999-07-20 Altera Corporation Programmable logic array circuits comprising look up table implementation of fast carry adders and counters
US6049224A (en) * 1997-10-15 2000-04-11 Lucent Technologies Inc. Programmable logic device with logic cells having a flexible input structure
US6118300A (en) * 1998-11-24 2000-09-12 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6154053A (en) * 1993-09-02 2000-11-28 Xilinx, Inc. Look-ahead carry structure with homogeneous CLB structure and pitch larger than CLB pitch
US6288570B1 (en) 1993-09-02 2001-09-11 Xilinx, Inc. Logic structure and circuit for fast carry
US6288568B1 (en) 1996-11-22 2001-09-11 Xilinx, Inc. FPGA architecture with deep look-up table RAMs
US6292019B1 (en) * 1999-05-07 2001-09-18 Xilinx Inc. Programmable logic device having configurable logic blocks with user-accessible input multiplexers
US6297665B1 (en) 1996-11-22 2001-10-02 Xilinx, Inc. FPGA architecture with dual-port deep look-up table RAMS
US6323680B1 (en) 1999-03-04 2001-11-27 Altera Corporation Programmable logic device configured to accommodate multiplication
US6323682B1 (en) 1996-11-22 2001-11-27 Xilinx, Inc. FPGA architecture with wide function multiplexers
US6359466B1 (en) * 1997-09-16 2002-03-19 Vantis Corporation Circuitry to provide fast carry
US6359469B1 (en) * 1996-04-09 2002-03-19 Altera Corporation Logic element for a programmable logic integrated circuit
US6359468B1 (en) 1999-03-04 2002-03-19 Altera Corporation Programmable logic device with carry look-ahead
US6505337B1 (en) 1998-11-24 2003-01-07 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6603332B2 (en) * 1999-02-25 2003-08-05 Xilinx, Inc. Configurable logic block for PLD with logic gate for combining output with another configurable logic block
US6724810B1 (en) 2000-11-17 2004-04-20 Xilinx, Inc. Method and apparatus for de-spreading spread spectrum signals
US20050140389A1 (en) * 2003-11-21 2005-06-30 Infineon Technologies Ag Logic basic cell and logic basic cell arrangement
US20060001445A1 (en) * 2004-07-02 2006-01-05 Tatung Co., Ltd. Programmable logic block for designing an asynchronous circuit
EP1659693A2 (en) * 1995-06-07 2006-05-24 Altera Corporation Coarse-Grained Look-Up Table Integrated Circuit
US20070244957A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US20070241781A1 (en) * 2005-03-15 2007-10-18 Brad Hutchings Variable width management for a memory of a configurable IC
US20070244960A1 (en) * 2004-11-08 2007-10-18 Herman Schmit Configurable IC's with large carry chains
US20080100336A1 (en) * 2005-03-15 2008-05-01 Brad Hutchings Hybrid Logic/Interconnect Circuit in a Configurable IC
US20080129335A1 (en) * 2005-03-15 2008-06-05 Brad Hutchings Configurable IC with interconnect circuits that have select lines driven by user signals
US20090327987A1 (en) * 2008-06-26 2009-12-31 Steven Teig Timing operations in an IC with configurable circuits
US20100001759A1 (en) * 2007-03-20 2010-01-07 Steven Teig Configurable ic having a routing fabric with storage elements
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US20100213977A1 (en) * 2005-12-01 2010-08-26 Jason Redgrave Users registers implemented with routing circuits in a configurable ic
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US20100241800A1 (en) * 2006-03-08 2010-09-23 Herman Schmit System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7898291B2 (en) 2004-12-01 2011-03-01 Tabula, Inc. Operational time extension
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7971172B1 (en) 2005-11-07 2011-06-28 Tabula, Inc. IC that efficiently replicates a function to save logic and routing resources
US20110163781A1 (en) * 2004-06-30 2011-07-07 Andre Rohe Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US20110202586A1 (en) * 2004-06-30 2011-08-18 Steven Teig Configurable ic's with dual carry chains
US8415973B2 (en) 2004-06-30 2013-04-09 Tabula, Inc. Configurable integrated circuit with built-in turns
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US8726213B2 (en) 2005-03-15 2014-05-13 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967107A (en) * 1989-05-12 1990-10-30 Plus Logic, Inc. Programmable logic expander
US5027011A (en) * 1989-10-31 1991-06-25 Sgs-Thomson Microelectronics, Inc. Input row drivers for programmable logic devices
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5311080A (en) * 1993-03-26 1994-05-10 At&T Bell Laboratories Field programmable gate array with direct input/output connection
US5315178A (en) * 1993-08-27 1994-05-24 Hewlett-Packard Company IC which can be used as a programmable logic cell array or as a register file

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967107A (en) * 1989-05-12 1990-10-30 Plus Logic, Inc. Programmable logic expander
US5027011A (en) * 1989-10-31 1991-06-25 Sgs-Thomson Microelectronics, Inc. Input row drivers for programmable logic devices
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5311080A (en) * 1993-03-26 1994-05-10 At&T Bell Laboratories Field programmable gate array with direct input/output connection
US5315178A (en) * 1993-08-27 1994-05-24 Hewlett-Packard Company IC which can be used as a programmable logic cell array or as a register file

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926036A (en) * 1991-09-03 1999-07-20 Altera Corporation Programmable logic array circuits comprising look up table implementation of fast carry adders and counters
US5898319A (en) * 1993-09-02 1999-04-27 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US6288570B1 (en) 1993-09-02 2001-09-11 Xilinx, Inc. Logic structure and circuit for fast carry
US6154053A (en) * 1993-09-02 2000-11-28 Xilinx, Inc. Look-ahead carry structure with homogeneous CLB structure and pitch larger than CLB pitch
EP0707382A3 (en) * 1994-09-20 1996-05-22 Xilinx Inc
US5753545A (en) * 1994-12-01 1998-05-19 Hughes Electronics Corporation Effective constant doping in a graded compositional alloy
EP1659693A3 (en) * 1995-06-07 2006-07-19 Altera Corporation Coarse-Grained Look-Up Table Integrated Circuit
EP1659693A2 (en) * 1995-06-07 2006-05-24 Altera Corporation Coarse-Grained Look-Up Table Integrated Circuit
EP0756383A2 (en) 1995-07-27 1997-01-29 AT&T IPM Corp. Field programmable gate array with multi-port RAM
US5570039A (en) * 1995-07-27 1996-10-29 Lucent Technologies Inc. Programmable function unit as parallel multiplier cell
US5559450A (en) * 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
EP0756383A3 (en) * 1995-07-27 2000-11-15 AT&T IPM Corp. Field programmable gate array with multi-port RAM
US5818255A (en) * 1995-09-29 1998-10-06 Xilinx, Inc. Method and circuit for using a function generator of a programmable logic device to implement carry logic functions
US5623217A (en) * 1996-02-26 1997-04-22 Lucent Technologies Inc. Field programmable gate array with write-port enabled memory
US6359469B1 (en) * 1996-04-09 2002-03-19 Altera Corporation Logic element for a programmable logic integrated circuit
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US6026227A (en) * 1996-05-20 2000-02-15 Atmel Corporation FPGA logic cell internal structure including pair of look-up tables
EP1150431A1 (en) * 1996-05-20 2001-10-31 Atmel Corporation FPGA with look-up tables
US6292021B1 (en) 1996-05-20 2001-09-18 Atmel Corporation FPGA structure having main, column and sector reset lines
US6014509A (en) * 1996-05-20 2000-01-11 Atmel Corporation Field programmable gate array having access to orthogonal and diagonal adjacent neighboring cells
WO1997044730A1 (en) * 1996-05-20 1997-11-27 Atmel Corporation Field programmable gate array with distributed ram and increased cell utilization
US6167559A (en) * 1996-05-20 2000-12-26 Atmel Corporation FPGA structure having main, column and sector clock lines
US6262597B1 (en) 1996-11-22 2001-07-17 Xilinx, Inc. FIFO in FPGA having logic elements that include cascadable shift registers
WO1998023033A1 (en) * 1996-11-22 1998-05-28 Xilinx, Inc. Lookup tables which double as shift registers
US6288568B1 (en) 1996-11-22 2001-09-11 Xilinx, Inc. FPGA architecture with deep look-up table RAMs
US6118298A (en) * 1996-11-22 2000-09-12 Xilinx, Inc. Structure for optionally cascading shift registers
US6297665B1 (en) 1996-11-22 2001-10-02 Xilinx, Inc. FPGA architecture with dual-port deep look-up table RAMS
US6323682B1 (en) 1996-11-22 2001-11-27 Xilinx, Inc. FPGA architecture with wide function multiplexers
US5905385A (en) * 1997-04-01 1999-05-18 Advanced Micro Devices, Inc. Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA)
WO1998051013A1 (en) * 1997-05-09 1998-11-12 Xilinx, Inc. Method and structure for providing fast conditional sum in a field programmable gate array
US6359466B1 (en) * 1997-09-16 2002-03-19 Vantis Corporation Circuitry to provide fast carry
US6049224A (en) * 1997-10-15 2000-04-11 Lucent Technologies Inc. Programmable logic device with logic cells having a flexible input structure
US6118300A (en) * 1998-11-24 2000-09-12 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6505337B1 (en) 1998-11-24 2003-01-07 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6191610B1 (en) 1998-11-24 2001-02-20 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6603332B2 (en) * 1999-02-25 2003-08-05 Xilinx, Inc. Configurable logic block for PLD with logic gate for combining output with another configurable logic block
US6359468B1 (en) 1999-03-04 2002-03-19 Altera Corporation Programmable logic device with carry look-ahead
US6323680B1 (en) 1999-03-04 2001-11-27 Altera Corporation Programmable logic device configured to accommodate multiplication
US6292019B1 (en) * 1999-05-07 2001-09-18 Xilinx Inc. Programmable logic device having configurable logic blocks with user-accessible input multiplexers
US6724810B1 (en) 2000-11-17 2004-04-20 Xilinx, Inc. Method and apparatus for de-spreading spread spectrum signals
US20050140389A1 (en) * 2003-11-21 2005-06-30 Infineon Technologies Ag Logic basic cell and logic basic cell arrangement
DE102004056322B4 (en) * 2003-11-21 2012-07-19 Infineon Technologies Ag Logic Ground Cell and Logic Ground Cell Arrangement
US7386812B2 (en) 2003-11-21 2008-06-10 Infineon Technologies Ag Logic basic cell and logic basic cell arrangement
US20110163781A1 (en) * 2004-06-30 2011-07-07 Andre Rohe Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US8415973B2 (en) 2004-06-30 2013-04-09 Tabula, Inc. Configurable integrated circuit with built-in turns
US8350591B2 (en) 2004-06-30 2013-01-08 Tabula, Inc. Configurable IC's with dual carry chains
US8281273B2 (en) 2004-06-30 2012-10-02 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US20110202586A1 (en) * 2004-06-30 2011-08-18 Steven Teig Configurable ic's with dual carry chains
US20060001445A1 (en) * 2004-07-02 2006-01-05 Tatung Co., Ltd. Programmable logic block for designing an asynchronous circuit
US7307450B2 (en) * 2004-07-02 2007-12-11 Tatung Company Programmable logic block for designing an asynchronous circuit
US20070244957A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US8248102B2 (en) 2004-11-08 2012-08-21 Tabula, Inc. Configurable IC'S with large carry chains
US20070244960A1 (en) * 2004-11-08 2007-10-18 Herman Schmit Configurable IC's with large carry chains
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US20110031998A1 (en) * 2004-11-08 2011-02-10 Jason Redgrave Configurable ic's with large carry chains
US20110181317A1 (en) * 2004-12-01 2011-07-28 Andre Rohe Operational time extension
US8664974B2 (en) 2004-12-01 2014-03-04 Tabula, Inc. Operational time extension
US7898291B2 (en) 2004-12-01 2011-03-01 Tabula, Inc. Operational time extension
US7816944B2 (en) 2005-03-15 2010-10-19 Tabula, Inc. Variable width writing to a memory of an IC
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US20080129335A1 (en) * 2005-03-15 2008-06-05 Brad Hutchings Configurable IC with interconnect circuits that have select lines driven by user signals
US7932742B2 (en) 2005-03-15 2011-04-26 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US20070241781A1 (en) * 2005-03-15 2007-10-18 Brad Hutchings Variable width management for a memory of a configurable IC
US8726213B2 (en) 2005-03-15 2014-05-13 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US20080100336A1 (en) * 2005-03-15 2008-05-01 Brad Hutchings Hybrid Logic/Interconnect Circuit in a Configurable IC
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7971172B1 (en) 2005-11-07 2011-06-28 Tabula, Inc. IC that efficiently replicates a function to save logic and routing resources
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US20100213977A1 (en) * 2005-12-01 2010-08-26 Jason Redgrave Users registers implemented with routing circuits in a configurable ic
US8089300B2 (en) 2005-12-01 2012-01-03 Tabula, Inc. Users registers implemented with routing circuits in a configurable IC
US20110004734A1 (en) * 2006-03-08 2011-01-06 Herman Schmit System and method for providing more logical memory ports than physical memory ports
US8230182B2 (en) 2006-03-08 2012-07-24 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7962705B2 (en) 2006-03-08 2011-06-14 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US20100241800A1 (en) * 2006-03-08 2010-09-23 Herman Schmit System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US8434045B1 (en) 2006-12-12 2013-04-30 Tabula, Inc. System and method of providing a memory hierarchy
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US8093922B2 (en) 2007-03-20 2012-01-10 Tabula, Inc. Configurable IC having a routing fabric with storage elements
US20100001759A1 (en) * 2007-03-20 2010-01-07 Steven Teig Configurable ic having a routing fabric with storage elements
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US20090327987A1 (en) * 2008-06-26 2009-12-31 Steven Teig Timing operations in an IC with configurable circuits

Similar Documents

Publication Publication Date Title
US5386156A (en) Programmable function unit with programmable fast ripple logic
US5350954A (en) Macrocell with flexible product term allocation
US5821774A (en) Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure
US5136188A (en) Input/output macrocell for programmable logic device
US5357152A (en) Logic system of logic networks with programmable selected functions and programmable operational controls
US5570039A (en) Programmable function unit as parallel multiplier cell
US5327369A (en) Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US5818255A (en) Method and circuit for using a function generator of a programmable logic device to implement carry logic functions
US5220214A (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5631576A (en) Programmable logic array integrated circuit devices with flexible carry chains
WO1998051013A1 (en) Method and structure for providing fast conditional sum in a field programmable gate array
US6255846B1 (en) Programmable logic devices with enhanced multiplexing capabilities
EP0843893B1 (en) A microcontroller having an n-bit data bus width with less than n i/o pins
EP0973099A3 (en) Parallel data processor
US6154052A (en) Combined tristate/carry logic mechanism
US7253660B1 (en) Multiplexing device including a hardwired multiplexer in a programmable logic device
US6009259A (en) Emulation System
IE57678B1 (en) Full adder circuit
WO2000059112A3 (en) Multiplier circuit
EP0795825A3 (en) Semiconductor memory with a redundant circuit
JPH01220522A (en) Master slice type semiconductor integrated circuit
US5623434A (en) Structure and method of using an arithmetic and logic unit for carry propagation stage of a multiplier
US6707315B2 (en) Registered logic macrocell with product term allocation and adjacent product term stealing
US5091660A (en) Semiconductor logic circuit
JPS63215212A (en) Pulse circuit

Legal Events

Date Code Title Description
AS Assignment

Owner name: AMERICAN TELEPHONE AND TELEGRAPH COMPANY, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRITTON, BARRY KEVIN;LEUNG, WAI-BOR;REEL/FRAME:006681/0953;SIGNING DATES FROM 19930727 TO 19930827

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: AGERE SYSTEMS GUARDIAN CORP., FLORIDA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LUCENT TECHNOLOGIES INC.;REEL/FRAME:012506/0534

Effective date: 20010131

AS Assignment

Owner name: LATTICE SEMICONDUCTOR CORPORATION, OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGERE SYSTEMS GUARDIAN CORPORATION;REEL/FRAME:012631/0900

Effective date: 20020115

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12