US5488315A - Adder-based base cell for field programmable gate arrays - Google Patents

Adder-based base cell for field programmable gate arrays Download PDF

Info

Publication number
US5488315A
US5488315A US08/369,060 US36906095A US5488315A US 5488315 A US5488315 A US 5488315A US 36906095 A US36906095 A US 36906095A US 5488315 A US5488315 A US 5488315A
Authority
US
United States
Prior art keywords
input
output
multiplexer
base cell
operable
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/369,060
Inventor
Shivaling S. Mahant-Shetti
Manisha Agarwala
Mahesh M. Mehendale
Robert J. Landers
Mark G. Harward
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to US08/369,060 priority Critical patent/US5488315A/en
Assigned to TEXAS INSTRUMENTS INCORPORATED reassignment TEXAS INSTRUMENTS INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAHANT-SHETTI, SHIVALING S., HARWARD, MARK G., MEHENDALE, MAHESH M., LANDERS, ROBERT J., AGARWALA, MANISHA
Application granted granted Critical
Publication of US5488315A publication Critical patent/US5488315A/en
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
    • 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/1735Controllable logic circuits by wiring, e.g. uncommitted logic arrays
    • H03K19/1736Controllable logic circuits by wiring, e.g. uncommitted logic arrays in which the wiring can be modified
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4812Multiplexers

Definitions

  • This invention relates in general to the field of electronic devices, and more specifically to an adder-based base cell for field programmable gate arrays.
  • FPGAs Field programmable gate arrays
  • ASIC application-specific integrated circuit
  • a typical FPGA architecture consists of a two-dimensional array of logic modules or base cells that can be selectively connected using a programmable interconnect structure.
  • the architecture includes rows of base cells interspersed with routing channels consisting of predefined tracks. The tracks are segmented and two adjacent segments can be connected by programming a horizontal antifuse.
  • FPGA architectures typically utilize a base cell that incorporates multiplexer-based logic design. The output of each base cell is connected to a dedicated vertical segment. Other vertical segments pass through the base cells serving as feed-through between channels.
  • the area required for one logic implementation in comparison to another depends upon a combination of size and number of base cells required and the routing and programming resources available.
  • a large complex base cell requires more physical area but can implement many logic functions. Thus, a smaller total number of base cells may be required for a particular design. However, the large base cells may be underutilized, resulting in wasted logic gates.
  • the base cells are too small and simple, a large number of base cells would be required to implement a complex logic function, resulting in a large interconnection requirement. Thus, there is a trade-off between the base cell size and the number of base cells required to implement a desired function.
  • the structure of a base cell be such that it can implement as many useful functions as possible using a single base cell yet require as little space as possible.
  • an adder-based base cell for field programmable gate arrays is provided that substantially eliminates or reduces disadvantages and problems associated with prior base cells.
  • an adder-based base cell for field programmable gate arrays includes a first inverter operable to receive a first input signal.
  • a first NAND gate is coupled to the first inverter and is operable to receive a second input signal.
  • a first 2:1 multiplexer is coupled to the first NAND gate and is operable to receive a third input signal.
  • a second inverter is operable to receive a fourth input signal.
  • a second NAND gate is coupled to the second inverter and is operable to receive a fifth input signal.
  • An XOR gate is coupled to the second NAND gate, is operable to receive a sixth input signal, and is coupled to the first 2:1 multiplexer.
  • a second 2:1 multiplexer is operable to receive a seventh input signal, is operable to receive an eighth input signal and is coupled to the XOR gate.
  • FIG. 1 illustrates one embodiment of an adder-based base cell constructed according to the teachings of the present invention
  • FIG. 2 illustrates another embodiment of an adder-based base cell constructed according to the teachings of the present invention
  • FIG. 3 illustrates a further embodiment of an adder-based base cell constructed according to the teachings of the present invention
  • FIG. 4 illustrates a D-latch implementation using the base cell of FIG. 3
  • FIGS. 5A, 5B and 5C illustrate full adder implementations using the base cells of FIG. 1, FIG. 2 and FIG. 3, respectively.
  • FIG. 1 illustrates a base cell, indicated generally at 10, constructed according to the teachings of the present invention.
  • Base cell 10 implements latches and generates a number of useful functions.
  • Base cell 10 generates all two input functions, a large number of three input functions and several useful four, five and six input functions.
  • base cell 10 receives eight input signals, A through H, and provides two output signals, F1 and F2.
  • An additional output signal P -- S1 is also available, as shown.
  • the P -- S1 output signal would not add value to the overall functionality of base cell 10. Consequently, there may be no need to make P -- S1 available as an output signal.
  • Base cell 10 includes a NAND gate 12 having two inputs and an output.
  • An inverter 13 has an output coupled to one input of NAND gate 12.
  • Inverter 13 has an input coupled to input signal A.
  • Input signal B is coupled to the other input of NAND gate 12.
  • a 2:1 multiplexer 14 provides an output and receives a "0" input, a "1" input and a “select” input.
  • the output of multiplexer 14 comprises a first function F1.
  • the output of NAND gate 12 is coupled to the "0" input of multiplexer 14, and input signal C is coupled to the "1" input of multiplexer 14.
  • Base cell 10 also includes a NAND gate 16 having an output and receiving two inputs.
  • An inverter 17 provides an output to one input of NAND gate 16.
  • Inverter 17 receives input signal D.
  • Input signal E is coupled to the other input of NAND gate 16.
  • An exclusive-or (XOR) gate 18 receives two inputs and provides an output.
  • the output of XOR gate 18 comprises a partial sum function P -- S1.
  • the output of XOR gate 18 is coupled to the "select" input of multiplexer 14.
  • Input signal F is coupled to one input of XOR gate 18, and the output of NAND gate 16 is coupled to the other input of XOR gate 18.
  • Base cell 10 further includes a 2:1 multiplexer 19 that receives a "0" input, a "1” input and a “select” input and provides an output.
  • the output of multiplexer 19 comprises a second function F2.
  • the "0" input and the “1” input of multiplexer 19 are coupled to input signals G and H as shown.
  • the output of XOR gate 18 is coupled to the "select" input of multiplexer 19.
  • Base cell 10 operates to generate 167 functions at output F1 depending upon the connections of input signals A through F.
  • Output F2 implements 46 functions depending upon the connections of input signals D through H. All of these functions are included in those generated at F1.
  • F1 can implement functions of input signals A through F, and F2 can implement functions of input signals D through H.
  • Partial sum function P -- S1 allows the implementation of a full adder.
  • output P -- S1 operates during an adder implementation similar to a conventional partial sum output. The following table summarizes the number of functions generated at F1 and F2.
  • base cell 10 can implement all one and two input functions.
  • Base cell 10 implements 48 three input functions, 87 four input functions, 21 five input functions, and one six input function. Further, base cell 10 can implement a full adder without the need for additional base cells.
  • inverters and NAND gates such as that for input signals A and B, provide an ability to utilize a signal or its complement.
  • a base cell obtained by replacing the NAND gates 12 and 16 in base cell 10 with NOR gates will have similar functionality.
  • the gates are illustrated as NAND gates for this embodiment only. The number of functions is identical when NOR gates are used, and 82 of those functions are common to those implemented with NAND gates.
  • FIG. 2 illustrates another embodiment of a base cell, indicated generally at 20, constructed according to the teachings of the present invention.
  • Base cell 20 provides two output signals F1 and F2, as shown. Similar to base cell 10 of FIG. 1, base cell 20 also has a third output signal P -- S1 that is usually not made available.
  • Base cell 20 includes a NAND gate 22 having an output and receiving two inputs.
  • An inverter 23 provides an output to one input of NAND gate 22 and has an input coupled to input signal A.
  • Input signal B is coupled to the other input of NAND gate 22.
  • a 2:1 multiplexer 24 receives a "0" input, a "1" input and a “select” input and provides an output.
  • the output of multiplexer 24 comprises a first function F1.
  • Input signal C and the output of NAND gate 22 are coupled to multiplexer 24 as shown.
  • Base cell 20 also includes a 2:1 multiplexer 26 that receives a "0" input, a "1” input and a “select” input and provides an output.
  • An inverter 27 provides an output to the "1" input of multiplexer 26 and has an input coupled to input signal E.
  • Input signal D is coupled to the "0" input of multiplexer 26 as shown.
  • Input signal F is coupled to the "select" input of multiplexer 26.
  • the output of multiplexer 26 is a partial sum function P -- S1.
  • Base cell 20 further includes a 2:1 multiplexer 28 that receives a "0" input, a "1” input and a “select” input and provides an output.
  • the input signals G and H are connected to the "0" input and the "1" input of multiplexer 28 as shown.
  • the output of multiplexer 28 comprises a second function F2. As shown, the output of multiplexer 26 is coupled to the "select" input of both multiplexer 24 and multiplexer 28.
  • Base cell 20 operates to implement a number of functions.
  • Base cell 20 can also be configured to implement a D-latch, a D-latch with enable, a D-latch with clear, a D-latch with preset, and a D flipflop.
  • Base cell 20 implements a total of 139 functions. The following table summarizes the number of functions generated at F1 and F2.
  • base cell 20 implements a number of functions as well as implementing a full adder without the need for an additional base cell. Further, base cell 20 is operable to implement D-latches. In an alternate embodiment of base cell 20, an additional base cell configuration is implemented by inserting an inverter and NAND gate combination between input signal G and multiplexer 28, making the base cell more symmetric. This modification creates three similar subcells.
  • FIG. 3 illustrates a further embodiment of a base cell, indicated generally at 30, constructed according to the teachings of the present invention.
  • Base cell 30 is similar to base cell 20 but implements a larger number of functions at the F2 output.
  • Base cell 30 includes a 2:1 multiplexer 32 that provides an output and receives a "0" input, a "1" input and a “select” input.
  • Multiplexer 32 provides an output that comprises a first function F1.
  • An inverter 33 provides an output that is coupled to the "1" input of multiplexer 32 as shown.
  • Input signal A is coupled to the "0" input of multiplexer 32, and input signal B is coupled to inverter 33.
  • Base cell 30 also includes a NAND gate 34 that provides an output and receives two inputs.
  • An inverter 35 provides an output that is coupled to one input of NAND gate 34.
  • Input signal D is coupled to NAND gate 34, and input signal C is coupled to inverter 35 as shown.
  • a 2:1 multiplexer 36 receives a "0" input, a “1” input and a “select” input and provides an output.
  • the output of multiplexer 36 is a partial sum function P -- S1.
  • the output of NAND gate 34 and input signals E and F are connected to the "0" input, the "1" input and the "select” input of multiplexer 36 as shown.
  • the output of multiplexer 36 is coupled to the "select" input of multiplexer 32.
  • Base cell 30 also includes a 2:1 multiplexer 38 that provides an output and receives a "0" input, a "1" input and a “select” input.
  • the output of multiplexer 38 comprises a second function F2.
  • Multiplexer 38 receives the output of multiplexer 36 as the "select” input.
  • Input signals G and H are connected to the "0" input and the "1" input of multiplexer 38 as shown.
  • base cell 30 of FIG. 3 The functions generated by base cell 30 of FIG. 3 are greater in number than those generated by base cell 10 or base cell 20.
  • the functions implemented at F2 of base cell 30 provide additional functions not implemented at F1. This increases the total number of functions implemented by base cell 30.
  • the following table summarizes the number of functions generated by base cell 30.
  • FIG. 4 illustrates a D-latch with preset and clear implemented using base cell 30 of FIG. 3.
  • input signal E comprises the D input of the D-latch.
  • Input signal C is connected to the output of multiplexer 32.
  • F1 comprises the Q output of the D-latch.
  • Input signal A comprises the preset input PRE, and input signal B comprises the clear signal CLR.
  • Input signal D is set to a logic high.
  • Input signal F is the clock input CLK, and inputs G and H are unused.
  • base cell 30 implements a D-latch with a preset and clear.
  • a technical advantage of the present invention is the ability during synthesis of full adders and latches to implement a full adder with only one base cell.
  • a further technical advantage is that this same base cell can implement latches and flipflops.
  • FIGS. 5A, 5B and 5C illustrate implementations of full adders using base cell 10, base cell 20 and base cell 30, respectively.
  • inputs signals A through H of base cell 10 are connected to the carry-in C in , and to the addends x and y.
  • Output signals F1 and F2 then represent the sum of x and y, SUM, and the carry-out, CARRYOUT, as shown.
  • FIG. 5B illustrates a full adder implementation using base cell 30.
  • Input signals A through H of base cell 30 are connected to the carry-in C in and to the addends x and y as shown.
  • Output signals F1 and F2 then represent the inverse of the sum of x and y, SUM, and the carry-out, CARRYOUT.
  • swapping the inputs of multiplexer 24 would result in F1 representing the sum rather than the inverse of the sum.
  • FIG. 5C illustrates a full adder implementation using base cell 30 of FIG. 3.
  • Input signals A through F of base cell 30 are connected to the carry-in C in and to the addends x and y, as shown.
  • Output signals F1 and F2 then represent the inverse of the sum of x and y, SUM, and the carry-out, CARRYOUT.

Abstract

An adder-based base cell (10) is provided for field programmable gate arrays. The base cell (10) includes a first inverter (13) operable to receive a first input signal (A). A first NAND gate (12) is coupled to the first inverter (13) and is operable to receive a second input signal (B). A first 2:1 multiplexer (14) is coupled to the first NAND gate (12) and is operable to receive a third input signal (C). The output of the first 2:1 multiplexer (14) represents a first function (F1). A second inverter (17) is operable to receive a fourth input signal (D). A second NAND gate (16) is coupled to the second inverter (17) and is operable to receive a fifth input signal (E). An XOR gate (18) is coupled to the second NAND gate (16), is operable to receive a sixth input signal (F), and is coupled to the first 2:1 multiplexer (14). The output of the XOR gate represents a partial sum function (PS-- 1). A second 2:1 multiplexer (19) is operable to receive a seventh input signal (G), is operable to receive an eighth input signal (H) and is coupled to the XOR gate (18). The output of the second 2:1 multiplexer (19) represents a second function (F2).

Description

TECHNICAL FIELD OF THE INVENTION
This invention relates in general to the field of electronic devices, and more specifically to an adder-based base cell for field programmable gate arrays.
BACKGROUND OF THE INVENTION
Field programmable gate arrays (FPGAs) are a rapidly evolving technology in the application-specific integrated circuit (ASIC) area. The increasing use of FPGAs in ASICs is due to the fact that they combine the flexibility of mask programmable gate arrays (MPGAs) with the convenience of field programmability.
A typical FPGA architecture consists of a two-dimensional array of logic modules or base cells that can be selectively connected using a programmable interconnect structure. The architecture includes rows of base cells interspersed with routing channels consisting of predefined tracks. The tracks are segmented and two adjacent segments can be connected by programming a horizontal antifuse.
In addition to the horizontal antifuses, there are cross-point antifuses that are used to make connections between the horizontal and the vertical tracks. FPGA architectures typically utilize a base cell that incorporates multiplexer-based logic design. The output of each base cell is connected to a dedicated vertical segment. Other vertical segments pass through the base cells serving as feed-through between channels.
The choice of architecture for base cells and the method by which the base cells are configured directly affects the usefulness and performance of an FPGA for a particular application. Performance depends mainly on the number of antifuses used and the critical path delay.
The area required for one logic implementation in comparison to another depends upon a combination of size and number of base cells required and the routing and programming resources available. A large complex base cell requires more physical area but can implement many logic functions. Thus, a smaller total number of base cells may be required for a particular design. However, the large base cells may be underutilized, resulting in wasted logic gates. On the other hand, if the base cells are too small and simple, a large number of base cells would be required to implement a complex logic function, resulting in a large interconnection requirement. Thus, there is a trade-off between the base cell size and the number of base cells required to implement a desired function.
It is desirable that the structure of a base cell be such that it can implement as many useful functions as possible using a single base cell yet require as little space as possible.
SUMMARY OF THE INVENTION
Therefore, a need has arisen for a base cell for field programmable gate arrays that provides a large number of useful functions while requiring a relatively small amount of space.
In accordance with the present invention, an adder-based base cell for field programmable gate arrays is provided that substantially eliminates or reduces disadvantages and problems associated with prior base cells.
According to one embodiment of the present invention, an adder-based base cell for field programmable gate arrays is provided. The base cell includes a first inverter operable to receive a first input signal. A first NAND gate is coupled to the first inverter and is operable to receive a second input signal. A first 2:1 multiplexer is coupled to the first NAND gate and is operable to receive a third input signal. A second inverter is operable to receive a fourth input signal. A second NAND gate is coupled to the second inverter and is operable to receive a fifth input signal. An XOR gate is coupled to the second NAND gate, is operable to receive a sixth input signal, and is coupled to the first 2:1 multiplexer. A second 2:1 multiplexer is operable to receive a seventh input signal, is operable to receive an eighth input signal and is coupled to the XOR gate.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present invention may be acquired by referring to the following description taken in conjunction with the accompanying drawings in which like reference numbers indicate like features and wherein:
FIG. 1 illustrates one embodiment of an adder-based base cell constructed according to the teachings of the present invention;
FIG. 2 illustrates another embodiment of an adder-based base cell constructed according to the teachings of the present invention;
FIG. 3 illustrates a further embodiment of an adder-based base cell constructed according to the teachings of the present invention;
FIG. 4 illustrates a D-latch implementation using the base cell of FIG. 3; and
FIGS. 5A, 5B and 5C illustrate full adder implementations using the base cells of FIG. 1, FIG. 2 and FIG. 3, respectively.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates a base cell, indicated generally at 10, constructed according to the teachings of the present invention. Base cell 10 implements latches and generates a number of useful functions. Base cell 10 generates all two input functions, a large number of three input functions and several useful four, five and six input functions.
As shown in FIG. 1, base cell 10 receives eight input signals, A through H, and provides two output signals, F1 and F2. An additional output signal P-- S1 is also available, as shown. However, for many applications, the P-- S1 output signal would not add value to the overall functionality of base cell 10. Consequently, there may be no need to make P-- S1 available as an output signal.
Base cell 10 includes a NAND gate 12 having two inputs and an output. An inverter 13 has an output coupled to one input of NAND gate 12. Inverter 13 has an input coupled to input signal A. Input signal B is coupled to the other input of NAND gate 12. A 2:1 multiplexer 14 provides an output and receives a "0" input, a "1" input and a "select" input. The output of multiplexer 14 comprises a first function F1. The output of NAND gate 12 is coupled to the "0" input of multiplexer 14, and input signal C is coupled to the "1" input of multiplexer 14.
Base cell 10 also includes a NAND gate 16 having an output and receiving two inputs. An inverter 17 provides an output to one input of NAND gate 16. Inverter 17 receives input signal D. Input signal E is coupled to the other input of NAND gate 16. An exclusive-or (XOR) gate 18 receives two inputs and provides an output. The output of XOR gate 18 comprises a partial sum function P-- S1. The output of XOR gate 18 is coupled to the "select" input of multiplexer 14. Input signal F is coupled to one input of XOR gate 18, and the output of NAND gate 16 is coupled to the other input of XOR gate 18.
Base cell 10 further includes a 2:1 multiplexer 19 that receives a "0" input, a "1" input and a "select" input and provides an output. The output of multiplexer 19 comprises a second function F2. The "0" input and the "1" input of multiplexer 19 are coupled to input signals G and H as shown. The output of XOR gate 18 is coupled to the "select" input of multiplexer 19.
Base cell 10 operates to generate 167 functions at output F1 depending upon the connections of input signals A through F. Output F2 implements 46 functions depending upon the connections of input signals D through H. All of these functions are included in those generated at F1. F1 can implement functions of input signals A through F, and F2 can implement functions of input signals D through H. Partial sum function P-- S1 allows the implementation of a full adder. In base cell 10, output P-- S1 operates during an adder implementation similar to a conventional partial sum output. The following table summarizes the number of functions generated at F1 and F2.
              TABLE I                                                     
______________________________________                                    
INPUTS           F1     F2                                                
______________________________________                                    
1                 2      2                                                
2                 8      8                                                
3                48     21                                                
4                87     14                                                
5                21      1                                                
6                 1     --                                                
TOTAL            167    46                                                
TOTAL F1 & F2           167                                               
______________________________________                                    
As can be seen from Table I, base cell 10 can implement all one and two input functions. Base cell 10 implements 48 three input functions, 87 four input functions, 21 five input functions, and one six input function. Further, base cell 10 can implement a full adder without the need for additional base cells.
The combinations of inverters and NAND gates, such as that for input signals A and B, provide an ability to utilize a signal or its complement. A base cell obtained by replacing the NAND gates 12 and 16 in base cell 10 with NOR gates will have similar functionality. The gates are illustrated as NAND gates for this embodiment only. The number of functions is identical when NOR gates are used, and 82 of those functions are common to those implemented with NAND gates.
FIG. 2 illustrates another embodiment of a base cell, indicated generally at 20, constructed according to the teachings of the present invention. Base cell 20 provides two output signals F1 and F2, as shown. Similar to base cell 10 of FIG. 1, base cell 20 also has a third output signal P-- S1 that is usually not made available.
Base cell 20 includes a NAND gate 22 having an output and receiving two inputs. An inverter 23 provides an output to one input of NAND gate 22 and has an input coupled to input signal A. Input signal B is coupled to the other input of NAND gate 22. A 2:1 multiplexer 24 receives a "0" input, a "1" input and a "select" input and provides an output. The output of multiplexer 24 comprises a first function F1. Input signal C and the output of NAND gate 22 are coupled to multiplexer 24 as shown.
Base cell 20 also includes a 2:1 multiplexer 26 that receives a "0" input, a "1" input and a "select" input and provides an output. An inverter 27 provides an output to the "1" input of multiplexer 26 and has an input coupled to input signal E. Input signal D is coupled to the "0" input of multiplexer 26 as shown. Input signal F is coupled to the "select" input of multiplexer 26. The output of multiplexer 26 is a partial sum function P-- S1.
Base cell 20 further includes a 2:1 multiplexer 28 that receives a "0" input, a "1" input and a "select" input and provides an output. The input signals G and H are connected to the "0" input and the "1" input of multiplexer 28 as shown. The output of multiplexer 28 comprises a second function F2. As shown, the output of multiplexer 26 is coupled to the "select" input of both multiplexer 24 and multiplexer 28.
Base cell 20 operates to implement a number of functions. Base cell 20 can also be configured to implement a D-latch, a D-latch with enable, a D-latch with clear, a D-latch with preset, and a D flipflop. Base cell 20 implements a total of 139 functions. The following table summarizes the number of functions generated at F1 and F2.
              TABLE II                                                    
______________________________________                                    
INPUTS           F1     F2                                                
______________________________________                                    
1                 2      2                                                
2                 8      8                                                
3                41     21                                                
4                68     14                                                
5                19      1                                                
6                 1     --                                                
TOTAL            139    46                                                
TOTAL F1 & F2           139                                               
______________________________________                                    
As with base cell 10, base cell 20 implements a number of functions as well as implementing a full adder without the need for an additional base cell. Further, base cell 20 is operable to implement D-latches. In an alternate embodiment of base cell 20, an additional base cell configuration is implemented by inserting an inverter and NAND gate combination between input signal G and multiplexer 28, making the base cell more symmetric. This modification creates three similar subcells.
FIG. 3 illustrates a further embodiment of a base cell, indicated generally at 30, constructed according to the teachings of the present invention. Base cell 30 is similar to base cell 20 but implements a larger number of functions at the F2 output.
Base cell 30 includes a 2:1 multiplexer 32 that provides an output and receives a "0" input, a "1" input and a "select" input. Multiplexer 32 provides an output that comprises a first function F1. An inverter 33 provides an output that is coupled to the "1" input of multiplexer 32 as shown. Input signal A is coupled to the "0" input of multiplexer 32, and input signal B is coupled to inverter 33.
Base cell 30 also includes a NAND gate 34 that provides an output and receives two inputs. An inverter 35 provides an output that is coupled to one input of NAND gate 34. Input signal D is coupled to NAND gate 34, and input signal C is coupled to inverter 35 as shown. A 2:1 multiplexer 36 receives a "0" input, a "1" input and a "select" input and provides an output. The output of multiplexer 36 is a partial sum function P-- S1. The output of NAND gate 34 and input signals E and F are connected to the "0" input, the "1" input and the "select" input of multiplexer 36 as shown. The output of multiplexer 36 is coupled to the "select" input of multiplexer 32.
Base cell 30 also includes a 2:1 multiplexer 38 that provides an output and receives a "0" input, a "1" input and a "select" input. The output of multiplexer 38 comprises a second function F2. Multiplexer 38 receives the output of multiplexer 36 as the "select" input. Input signals G and H are connected to the "0" input and the "1" input of multiplexer 38 as shown.
The functions generated by base cell 30 of FIG. 3 are greater in number than those generated by base cell 10 or base cell 20. The functions implemented at F2 of base cell 30 provide additional functions not implemented at F1. This increases the total number of functions implemented by base cell 30. The following table summarizes the number of functions generated by base cell 30.
              TABLE III                                                   
______________________________________                                    
INPUTS           F1     F2                                                
______________________________________                                    
1                 2      2                                                
2                 8      8                                                
3                40     26                                                
4                54     53                                                
5                15     18                                                
6                 1      1                                                
TOTAL            139    108                                               
TOTAL F1 & F2           179                                               
______________________________________                                    
FIG. 4 illustrates a D-latch with preset and clear implemented using base cell 30 of FIG. 3. In this implementation, input signal E comprises the D input of the D-latch. Input signal C is connected to the output of multiplexer 32. F1 comprises the Q output of the D-latch. Input signal A comprises the preset input PRE, and input signal B comprises the clear signal CLR. Input signal D is set to a logic high. Input signal F is the clock input CLK, and inputs G and H are unused. Connected in this way, base cell 30 implements a D-latch with a preset and clear.
A technical advantage of the present invention is the ability during synthesis of full adders and latches to implement a full adder with only one base cell. A further technical advantage is that this same base cell can implement latches and flipflops.
FIGS. 5A, 5B and 5C illustrate implementations of full adders using base cell 10, base cell 20 and base cell 30, respectively. As shown in FIG. 5A, inputs signals A through H of base cell 10 are connected to the carry-in Cin, and to the addends x and y. Output signals F1 and F2 then represent the sum of x and y, SUM, and the carry-out, CARRYOUT, as shown.
FIG. 5B illustrates a full adder implementation using base cell 30. Input signals A through H of base cell 30 are connected to the carry-in Cin and to the addends x and y as shown. Output signals F1 and F2 then represent the inverse of the sum of x and y, SUM, and the carry-out, CARRYOUT. In another embodiment, swapping the inputs of multiplexer 24 would result in F1 representing the sum rather than the inverse of the sum.
FIG. 5C illustrates a full adder implementation using base cell 30 of FIG. 3. Input signals A through F of base cell 30 are connected to the carry-in Cin and to the addends x and y, as shown. Output signals F1 and F2 then represent the inverse of the sum of x and y, SUM, and the carry-out, CARRYOUT.
Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made hereto without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (15)

What is claimed is:
1. A base cell for a field programmable gate array, comprising:
a first inverter having an input and an output, the input of the first inverter operable to receive a first input signal to the base cell;
a first NAND gate having a first input, a second input and an output, the first input of the first NAND gate coupled to the output of the first inverter and the second input of the first NAND gate operable to receive a second input signal to the base cell;
a first 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the first 2:1 multiplexer coupled to the output of the first NAND gate and the "1" input of the first 2:1 multiplexer operable to receive a third input signal to the base cell, such that the output of the first 2:1 multiplexer represents a first function;
a second inverter having an input and an output, the input of the second inverter operable to receive a fourth input signal to the base cell;
a second NAND gate having a first input, a second input and an output, the first input of the second NAND gate coupled to the output of the second inverter and the second input of the second NAND gate operable to receive a fifth input signal to the base cell;
an XOR gate having a first input, a second input and an output, the first input of the XOR gate coupled to the output of the second NAND gate, the second input of the XOR gate operable to receive a sixth input signal to the base cell, and the output of the XOR gate coupled to the "select" input of the first 2:1 multiplexer, such that the output of the XOR gate represents a partial sum function;
a second 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the second 2:1 multiplexer operable to receive a seventh input signal to the base cell, the "1" input of the second 2:1 multiplexer operable to receive an eighth input signal to the base cell and the "select" input of the second 2:1 multiplexer coupled to the output of the XOR gate, such that the output of the second 2:1 multiplexer represents a second function.
2. The base cell of claim 1, wherein the output of the first 2:1 multiplexer represents a full adder sum output and the output of the second 211 multiplexer represents a full adder carry-out output.
3. The base cell of claim 1, wherein the output of the first 2:1 multiplexer represents a first function comprising a multi-input logic function of the first, second, third, fourth, fifth and sixth input signals to the base cell.
4. The base cell of claim 1, wherein the output of the second 2:1 multiplexer represents a second function comprising a multi-input logic function of the fourth, fifth, sixth, seventh and eighth input signals to the base cell.
5. The base cell of claim 1, wherein the base cell comprises an integrated circuit constructed on a semiconductor substrate.
6. A base cell for a field programmable gate array, comprising:
a first inverter having an input and an output, the input of the first inverter operable to receive a first input signal to the base cell;
a NAND gate having a first input, a second input and an output, the first input of the NAND gate coupled to the output of the first inverter and the second input of the NAND gate operable to receive a second input signal to the base cell;
a first 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the first 2:1 multiplexer coupled to the output of the NAND gate and the "1" input of the first 2:1 multiplexer operable to receive a third input signal to the base cell, such that the output of the first 2:1 multiplexer represents a first function;
a second inverter having an input and an output, the input of the second inverter operable to receive a fifth input signal to the base cell;
a second 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the second 2:1 multiplexer operable to receive a fourth input signal to the base cell, the "1" input of the second 2:1 multiplexer coupled to the output of the second inverter, the "select" input of the second 2:1 multiplexer operable to receive a sixth input signal to the base cell, and the output of the second 2:1 multiplexer coupled to the "select" input of the first 2:1 multiplexer, such that the output of the second 2:1 multiplexer represents a partial sum function; and
a third 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the third 2:1 multiplexer operable to receive a seventh input signal to the base cell, the "1" input of the third 2:1 multiplexer operable to receive an eighth input signal to the base cell and the "select" input of the third 2:1 multiplexer coupled to the output of the second 2:1 multiplexer, such that the output of the third 2:1 multiplexer represents a second function.
7. The base cell of claim 6, wherein the output of the first 2:1 multiplexer represents a full adder sum output and the output of the third 2:1 multiplexer represents a full adder carry-out output.
8. The base cell of claim 6, wherein the output of the first 2:1 multiplexer represents a first function comprising a multi-input logic function of the first, second, third, fourth, fifth and sixth input signals to the base cell.
9. The base cell of claim 6, wherein the output of the third 2:1 multiplexer represents a second function comprising a multi-input logic function of the fourth, fifth, sixth, seventh and eighth input signals to the base cell.
10. The base cell of claim 8, wherein the base cell comprises an integrated circuit constructed on a semiconductor substrate.
11. A base cell for a field programmable gate array, comprising:
a first inverter having an input and an output, the input of the first inverter operable to receive a second input signal to the base cell;
a first 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the first 2:1 multiplexer operable to receive a first input signal to the base cell and the "1" input of the first 2:1 multiplexer coupled to the output of the first inverter, such that the output of the first 2:1 multiplexer represents a first function;
a second inverter having an input and an output, the input of the second inverter operable to receive a third input signal to the base cell;
a NAND gate having a first input, a second input and an output, the first input of the NAND gate coupled to the output of the first inverter and the second input of the NAND gate operable to receive a fourth input signal to the base cell;
a second 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the second 2:1 multiplexer coupled to the output of the NAND gate, the "1" input of the second 2:1 multiplexer operable to receive a fifth input signal to the base cell, the "select" input of the second 2:1 multiplexer operable to receive a sixth input signal to the base cell, and the output of the second 2:1 multiplexer coupled to the "select" input of the first 2:1 multiplexer, such that the output of the second 2:1 multiplexer represents a partial sum function; and
a third 2:1 multiplexer having a "0" input, a "1" input, a "select" input and an output, the "0" input of the third 2:1 multiplexer operable to receive a seventh input signal to the base cell, the "1" input of the third 2:1 multiplexer operable to receive an eighth input signal to the base cell and the "select" input of the third 2:1 multiplexer coupled to the output of the second 2:1 multiplexer, such that the output of the third 2:1 multiplexer represents a second function.
12. The base cell of claim 11, wherein the output of the first 2:1 multiplexer represents a full adder sum output and the output of the second 2:1 multiplexer represents a full adder carry-out output.
13. The base cell of claim 11, wherein the output of the first 2:1 multiplexer represents a first function comprising a multi-input logic function of the first, second, third, fourth, fifth and sixth input signals to the base cell.
14. The base cell of claim 11, wherein the output of the third 2:1 multiplexer represents a function comprising a multi-input logic function of the third, fourth, fifth, sixth, seventh and eighth input signals to the base cell.
15. The base cell of claim 15, wherein the base cell comprises an integrated circuit constructed on a semiconductor substrate.
US08/369,060 1995-01-05 1995-01-05 Adder-based base cell for field programmable gate arrays Expired - Lifetime US5488315A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/369,060 US5488315A (en) 1995-01-05 1995-01-05 Adder-based base cell for field programmable gate arrays

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/369,060 US5488315A (en) 1995-01-05 1995-01-05 Adder-based base cell for field programmable gate arrays

Publications (1)

Publication Number Publication Date
US5488315A true US5488315A (en) 1996-01-30

Family

ID=23453930

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/369,060 Expired - Lifetime US5488315A (en) 1995-01-05 1995-01-05 Adder-based base cell for field programmable gate arrays

Country Status (1)

Country Link
US (1) US5488315A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751162A (en) * 1995-04-06 1998-05-12 Texas Instruments Incorporated Field programmable gate array logic module configurable as combinational or sequential circuits
US5781033A (en) 1990-05-11 1998-07-14 Actel Corporation Logic module with configurable combinational and sequential blocks
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
US5936426A (en) 1997-02-03 1999-08-10 Actel Corporation Logic function module for field programmable array
US10853542B1 (en) * 2019-06-14 2020-12-01 QUALCOMM Incorporated— Fuse-based logic repair

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4878192A (en) * 1986-07-11 1989-10-31 Matsushita Electric Industrial Co. Ltd. Arithmetic processor and divider using redundant signed digit arithmetic
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5338983A (en) * 1991-10-28 1994-08-16 Texas Instruments Incorporated Application specific exclusive of based logic module architecture for FPGAs
US5424655A (en) * 1994-05-20 1995-06-13 Quicklogic Corporation Programmable application specific integrated circuit employing antifuses and methods therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4878192A (en) * 1986-07-11 1989-10-31 Matsushita Electric Industrial Co. Ltd. Arithmetic processor and divider using redundant signed digit arithmetic
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5338983A (en) * 1991-10-28 1994-08-16 Texas Instruments Incorporated Application specific exclusive of based logic module architecture for FPGAs
US5424655A (en) * 1994-05-20 1995-06-13 Quicklogic Corporation Programmable application specific integrated circuit employing antifuses and methods therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781033A (en) 1990-05-11 1998-07-14 Actel Corporation Logic module with configurable combinational and sequential blocks
US5751162A (en) * 1995-04-06 1998-05-12 Texas Instruments Incorporated Field programmable gate array logic module configurable as combinational or sequential circuits
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
US5936426A (en) 1997-02-03 1999-08-10 Actel Corporation Logic function module for field programmable array
US10853542B1 (en) * 2019-06-14 2020-12-01 QUALCOMM Incorporated— Fuse-based logic repair

Similar Documents

Publication Publication Date Title
US5338983A (en) Application specific exclusive of based logic module architecture for FPGAs
US6066960A (en) Programmable logic device having combinational logic at inputs to logic elements within logic array blocks
US5633601A (en) Field programmable gate array logic module configurable as combinational or sequential circuits
US5898602A (en) Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US7274211B1 (en) Structures and methods for implementing ternary adders/subtractors in programmable logic devices
US6903573B1 (en) Programmable logic device with enhanced wide input product term cascading
US7061275B2 (en) Field programmable gate array
US6359469B1 (en) Logic element for a programmable logic integrated circuit
US6873182B2 (en) Programmable logic devices having enhanced cascade functions to provide increased flexibility
US5821774A (en) Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure
EP2391011B1 (en) A programmable logic device having complex logic blocks with improved logic cell functionality
EP0964521A2 (en) Logic module with configurable combinational and sequential blocks
US20050218929A1 (en) Field programmable gate array logic cell and its derivatives
US5448185A (en) Programmable dedicated FPGA functional blocks for multiple wide-input functions
JP3325662B2 (en) Integrated circuit
US7193436B2 (en) Fast processing path using field programmable gate array logic units
US8072238B1 (en) Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions
US7164290B2 (en) Field programmable gate array logic unit and its cluster
GB2145857A (en) Up/down counter
CN107885485B (en) Programmable logic unit structure for realizing rapid addition based on carry look ahead
US6466051B1 (en) Multiplexers for efficient PLD logic blocks
US5488315A (en) Adder-based base cell for field programmable gate arrays
US7459932B1 (en) Programmable logic device having logic modules with improved register capabilities
US6441642B1 (en) Multiplexers for efficient PLD logic blocks
US5751162A (en) Field programmable gate array logic module configurable as combinational or sequential circuits

Legal Events

Date Code Title Description
AS Assignment

Owner name: TEXAS INSTRUMENTS INCORPORATED, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAHANT-SHETTI, SHIVALING S.;AGARWALA, MANISHA;MEHENDALE, MAHESH M.;AND OTHERS;REEL/FRAME:007332/0182;SIGNING DATES FROM 19941101 TO 19941212

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

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12