A universal logic module for use in a programmable logic device, capable of generating all logical functions of three variables or less. The universal logic module also implements a full adder with carry propagation.
|
0. 21. A dedicated carry multiplexer in a programmable logic device comprising:
a first input connectable to a signal from a programmable interconnect; a second input connected to a carry output of a first logic cell; and an output connected to a logic function circuit capable of performing a plurality of boolean functions of four inputs signals.
0. 16. A dedicated carry multiplexer in a programmable circuit comprising:
a first input coupled to receive a signal on a programmable interconnect; a second input coupled to receive a carry output of a first logic cell; and an output connectable to a logic function circuit capable of generating boolean functions of its input signals to provide a carry output signal to a second logic cell and an output signal to the programmable interconnect.
0. 26. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device; a function generator circuit that receives three input signals from a programmable interconnect structure and that generates a carry output signal; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line.
0. 11. In a programmable circuit having a programmable interconnect array, a first logic cell comprising:
a dedicated carrier multiplexer coupled to receive an input variable and a carry input signal from a second logic cell; and a logic function circuit that is capable of performing boolean functions of its input signals to generate a carry output signal, wherein the dedicated carrier multiplexer selectively couples the input variable and the carry input signal to an input of the logic function circuit.
0. 23. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device; a function generator circuit that has first, second, third, and fourth inputs that are each coupled to receive one of four input signals from a programmable interconnect structure; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line.
0. 32. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device, wherein the first logic cell is coupled to only receive a carry signal from one other logic cell; a function generator circuit that receives input signals from a programmable interconnect structure; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line.
0. 38. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device; a function generator circuit that receives input signals from a programmable interconnect structure; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line, and the first logic cell generates a carry output signal that is only provided to a third logic cell.
0. 29. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device; a function generator circuit that receives input signals from a programmable interconnect structure; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line, and the first logic cell generates a carry output signal that is provided to the programmable interconnect structure.
0. 15. A first logic cell in a programmable logic device, comprising:
a function generator circuit capable of implementing a boolean function of at least four input signals to generate an output signal that is provided to a programmable interconnect structure and a carry output signal that is provided to a second logic cell; a carry input line to receive a carry signal from a third logic cell in the programmable logic device; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer can provide a signal on the carry input line to an input of the function generator circuit.
0. 35. A first logic cell in a programmable logic device, comprising:
a carry input line coupled to receive a carry signal from a second logic cell in the programmable logic device; a first function generator circuit that receives input signals from a programmable interconnect structure; a second function generator circuit that receives input signals from the programmable interconnect structure; a first multiplexer that receives an output signal from the first function generator circuit and an output signal from the second function generator circuit; and a dedicated carry multiplexer coupled to the carry input line, wherein the dedicated carrier multiplexer receives the carry signal from the carry input line.
0. 18. A configurable electronic device comprising:
a plurality of logic cells, at least one logic cell comprising an output and a plurality of inputs, wherein the at least one logic cell programmably performing logical operations; and an interconnect structure programmably connecting the outputs of one of the logic cells to inputs of another of the logic cells wherein the at least one logic cell further comprises: a carry input line; a selector with a first selectable input coupled to receive a direct carry output of a first adjacent logic cell and a second selectable input coupled to the interconnect structure; and a function generator capable of generating a plurality of boolean functions of at least three inputs, wherein an output of the selector is coupled to an input of the function generator. 1. In a programmable logic device having a programmable interconnect array, a universal logic module having five input variables and an output, comprising:
a first multiplexer having a first and a second data input coupled to a first one of the five input variables, a third and fourth data input coupled to an inverse of said first one of the five input variables, a first select input coupled to a second one of the five input variables, a second select input coupled to a third one of the five input variables, and an output; a second multiplexer having a first and a second data input coupled to said first one of the five input variables, a third data input coupled to a fourth one of the five input variables, a fourth data input coupled to an inverse of said fourth one of the five input variables, a first select input coupled to said second one of the five input variables, a second select input coupled to said third one of the five input variables, and an output; and a third multiplexer having a first data input coupled to said output of said first multiplexer, a second data input coupled to said output of said second multiplexer, a select input coupled to a fifth one of the five input variables, and an output coupled to the output of the universal logic module.
10. In a programmable logic device having a programmable interconnect array, a universal logic module having five input variables, a first output and a second output, comprising:
a first 4:1 multiplexer having binary 0 and binary 3 data inputs coupled to a first one of the five input variables, binary 1 and binary 2 data inputs coupled to an inverse of said first one of the five input variables, a first select input coupled to a second one of the five input variables, a second select input coupled to a third one of the five input variables, and an output; a second 4:1 multiplexer having binary 1 and binary 2 data inputs coupled to said first one of the five input variable, binary 0 and binary 3 data inputs coupled to a true and complement of a fourth one of the five input variables, respectively, a first select input coupled to said second one of the five input variables, a second select input coupled to said third one of the five input variables, and an output; and a 2:1 multiplexer having a first data input coupled to said output of said first multiplexer, a second data input coupled to said output of said second multiplexer, a select input coupled to a fifth one of the five input variables, and an output coupled to the first output of the universal logic module, wherein said output of said second multiplexer provides a carry output at the second output of the universal logic module when the universal logic module implements an adder function.
2. The universal logic module of
3. The universal logic module of
4. The universal logic module of
5. The universal logic module of
6. The universal logic module of
7. The universal logic module of
8. The universal logic module of
9. The universal logic module of
0. 12. The logic cell of
0. 13. The first logic cell of
0. 14. The first logic cell of
0. 17. The dedicated carry multiplexer of
0. 19. The configurable electronic device according to
0. 20. The configurable electronic device as recited in
0. 22. The dedicated carry multiplexer of
0. 24. The first logic cell of
the function generator circuit generates a carry output signal that is provided to a third logic cell in the programmable logic device.
0. 25. The first logic cell of
the function generator circuit generates an output signal that is provided to the programmable interconnect structure.
0. 27. The first logic cell of
the function generator circuit is capable of performing all boolean functions of three variables using ten canonical forms of three-variable logic functions.
0. 28. The first logic cell of
the function generator circuit receives the carry signal from the dedicated carry multiplexer.
0. 30. The first logic cell of
the function generator circuit generates the carry output signal.
0. 31. The first logic cell of
the function generator circuit receives four input signals from the programmable interconnect structure.
0. 33. The first logic cell of
the function generator is capable of performing any boolean function of three variables.
0. 34. The first logic cell of
the function generator generates a carry output signal that is provided to a third logic cell, and the function generator generates a second output signal that is provided to the programmable interconnect structure.
0. 36. The first logic cell of
the second function generator circuit generates a carry output signal that is provided to a third logic cell.
0. 37. The first logic cell of
the first multiplexer generates an output signal that is provided to the programmable interconnect structure.
0. 39. The first logic cell of
the functional generator circuit is coupled to receive the carry input signal from the dedicated carry multiplexer and to generate the carry output signal.
|
A universal logic module (ULM) is a combinatorial logic circuit that can produce a set of multi-variable logic functions by only manipulating the application of variables to its several input terminals. The number of all possible unique logical functions of three variables (or less) is given by the expression [2**(2**3)], which is equal to [2**8] or 256. It has long been known that if both true and complements of all input variables as well as the resulting output function are available, the number of nondegenerate (or canonical forms of) three-variable logic functions can be reduced to ten. That is, all Boolean functions of three variables, x, y and z, can be converted into one of ten functions f(x,y,z) by some combination of inverting the inputs, inverting the output, and permuting the inputs.
Table 1 shows one example of how the three input variables x, y and z, their complements and the constants 0 and 1 can be assigned to the five inputs of the ULM of
TABLE 1 | |||||||
a1 | a2 | b | c | d | f(x,y,z) | carry(x,y,z) | |
1 | x | y | x | z | z | xyz | N.A. |
2 | 0 | x | y | z | 1 | xyz + x'y'z' | N.A. |
3 | 0 | x | y' | y' | z | (x XOR y)z | N.A. |
4 | 0 | x | y' | z | y' | (x + y)z | N.A. |
5 | 0 | 0 | x | y | z | xy'z' + x'yz' + x'y'z | N.A. |
6 | 0 | y | 0 | x | z | xz' + x'y'z | N.A. |
7 | x | 1 | y | z | 1 | xy + xz + yz | N.A. |
8 | x | y | 1 | 1 | z | xz' + yz | N.A. |
9 | z | z | 1 | x' | y' | xy XOR z | N.A. |
10 | x | 1 | y | z | 0 | x XOR y XOR z | xy + xz + yz |
Application of DeMorgan's Law allows, for example, the function f(x,y,z)=x+y+z to be realized by using the first line in Table 1 that defines the function f(x,y,z)=xyz and inverting all inputs and the output. The function f(x,y,z)=xz XOR y can be realized from the ninth function f(x,y,z)=xy XOR z in Table 1, by swapping y and z. All functions of fewer than three variables can be readily realized by selecting an appropriate three-variable function from Table 1 and setting one or more of its inputs to 0 or 1. For example, the ninth function f(x,y,z)=xy XOR z converts to f(x,y)=xy by setting z to 0. Through these known methods the ULM of
The ULM of
The ULM of the present invention is used as the combinatorial circuit of a logic cell in a programmable logic device (PLD). The logic cell typically includes a programmable flip-flop which receives the output f at its input. The flip-flop enables the PLD to perform sequential logic. The PLD comprises a large number of logic cells that connect together through a programmable interconnect array. To drive other circuitry, the ULM outputs (f and carry) may require buffering.
One approach to implementing the carry propagation circuitry is to use an additional 2:1 multiplexer as part of the ULM and propagate carry from cell to cell without using the interconnect array. Alternatively, the carry output can feed into the programmable interconnect array before connecting to a carry input of another cell.
In conclusion, the present invention provides a small and fast universal logic module (ULM) for use in programmable logic devices, which is capable of realizing all Boolean functions of three or fewer variables. The ULM of the present invention further includes a separate output that can realize the carry output of a full adder. While the above is a complete description of the preferred embodiments of the present invention, it is possible to use various alternatives, modifications and equivalents. For example, the ULM circuit of
Patent | Priority | Assignee | Title |
11341484, | Apr 29 2016 | nChain Holdings Ltd | Implementing logic gate functionality using a blockchain |
11694193, | Apr 29 2016 | nChain Licensing AG; nChain Holdings Ltd | Implementing logic gate functionality using a blockchain |
11900364, | Apr 29 2016 | nChain Licensing AG | Implementing logic gate functionality using a blockchain |
7414431, | Feb 23 2005 | Agate Logic, Inc | Dedicated logic cells employing configurable logic and dedicated logic functions |
7836113, | Feb 23 2005 | Agate Logic, Inc | Dedicated logic cells employing configurable logic and dedicated logic functions |
Patent | Priority | Assignee | Title |
3579119, | |||
4229803, | Jun 02 1978 | Texas Instruments Incorporated | I2 L Full adder and ALU |
4541067, | May 10 1982 | AMI Semiconductor, Inc | Combinational logic structure using PASS transistors |
4825105, | Sep 28 1984 | Siemens Aktiengesellschaft | Circuit for generation of logic variables, using multiplexes and inverters |
4870302, | Mar 12 1984 | XILINX, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
4912339, | Dec 05 1988 | International Business Machines Corporation | Pass gate multiplexer |
5162666, | Mar 15 1991 | TA-WEI PO; TRANSLOGIC TECHNOLOGY, INC | Transmission gate series multiplexer |
5198705, | May 11 1990 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
5220213, | Mar 06 1991 | QuickLogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
5274581, | May 08 1992 | ALTERA CORPORATION A CORPORATION OF DELAWARE | Look up table implementation of fast carry for adders and counters |
5349250, | Sep 02 1993 | XILINX, Inc. | Logic structure and circuit for fast carry |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 20 2001 | Altera Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Dec 18 2006 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 02 2007 | 4 years fee payment window open |
Sep 02 2007 | 6 months grace period start (w surcharge) |
Mar 02 2008 | patent expiry (for year 4) |
Mar 02 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 02 2011 | 8 years fee payment window open |
Sep 02 2011 | 6 months grace period start (w surcharge) |
Mar 02 2012 | patent expiry (for year 8) |
Mar 02 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 02 2015 | 12 years fee payment window open |
Sep 02 2015 | 6 months grace period start (w surcharge) |
Mar 02 2016 | patent expiry (for year 12) |
Mar 02 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |