USRE38451E1  Universal logic module with arithmetic capabilities  Google Patents
Universal logic module with arithmetic capabilities Download PDFInfo
 Publication number
 USRE38451E1 USRE38451E1 US09/792,342 US79234201A USRE38451E US RE38451 E1 USRE38451 E1 US RE38451E1 US 79234201 A US79234201 A US 79234201A US RE38451 E USRE38451 E US RE38451E
 Authority
 US
 United States
 Prior art keywords
 carry
 input
 logic
 coupled
 multiplexer
 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
Links
 241001442055 Vipera berus Species 0 abstract 1
 239000004452 animal feeding substances Substances 0 description 4
 230000003139 buffering Effects 0 description 1
 239000000969 carrier Substances 0 claims 9
 230000000295 complement Effects 0 claims description 11
 230000000875 corresponding Effects 0 claims 4
 230000001808 coupling Effects 0 claims 4
 238000010168 coupling process Methods 0 claims 4
 238000005859 coupling reaction Methods 0 claims 4
 230000035611 feeding Effects 0 description 5
 230000014509 gene expression Effects 0 description 1
 230000015654 memory Effects 0 description 1
 230000004048 modification Effects 0 description 1
 238000006011 modification Methods 0 description 1
 239000000047 products Substances 0 description 1
 230000000644 propagated Effects 0 description 1
 230000001902 propagating Effects 0 description 1
 230000002829 reduced Effects 0 description 1
 239000010703 silicon Substances 0 description 1
Images
Classifications

 G—PHYSICS
 G06—COMPUTING; CALCULATING; COUNTING
 G06F—ELECTRIC DIGITAL DATA PROCESSING
 G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled

 G—PHYSICS
 G06—COMPUTING; CALCULATING; COUNTING
 G06F—ELECTRIC DIGITAL DATA PROCESSING
 G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
 G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
 G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using noncontactmaking devices, e.g. tube, solid state device; using unspecified devices
 G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483  G06F7/556 or for performing logical operations
 G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
Abstract
Description
This application is a continuation of U.S. reissue application Ser. No. 08/900,070, filed Jul. 24, 1997, now abandoned, which is a reissue of U.S. patent application Ser. No. 08/153,321, filed Nov. 12, 1993, now U.S. Pat. No. 5,436,574, which are incorporated by reference.
This invention relates in general to electronic circuits for generation of combinatorial logic. More particularly, this invention relates to a universal logic module for use in programmable logic devices (PLDs).
A logic cell is the fundamental building block of a PLD. Each logic cell typically includes a logic array section to implement combinatorial (“sum of the products”) logic and a register to provide for sequential logic. When combined together in large numbers inside a PLD, they facilitate implementation of complex combinatorial as well as sequential logic. Therefore, versatility and cell size are among the more important considerations in design of logic cells for PLDs.
There exist differing approaches to implementing the combinatorial logic section of a PLD logic cell. One approach employs electrically programmable read only memory (EPROM) elements to implement a programmable AND array that is followed by fixed OR logic. Another method of implementing the programmable combinatorial logic uses lookup tables that can be programmed using random access memory (RAM) cells. Either method requires a number of programmable elements that must be configured for a particular logic function before input variables are applied. Furthermore, existing logic cells tend to be inflexible when implementing frequently occurring specialized functions. For example, two logic cells are required to implement a full adder with carry output using typical existing logic cells.
There is, therefore, room for improvement in methods of implementing combinatorial logic for logic cells in PLDs.
The present invention provides a small and fast universal logic module (ULM) 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.
In a preferred embodiment, the present invention provides, in a programmable logic device, a ULM having five input terminals and an output terminal. The ULM includes two 4:1 multiplexers and 2:1 multiplexer. Each 4:1 multiplexer includes 4 data inputs, 2 select inputs and one output. The outputs of the 4:1 multiplexers feed two data inputs of the 2:1 multiplexer, whose output forms the ULM output. The eight data inputs of the two 4:1 multiplexers and their select inputs as well as the select input of the 2:1 multiplexer connect to the five input terminals and their complements. An output of one of the 4:1 multiplexers can be used as a carry output of full adder.
This embodiment of the present invention can realize all Boolean functions of three or fewer variables by assigning the three (or fewer) variables, their complements and the constants 0 and 1 to the five input terminals. Furthermore, this circuit is capable of realizing the carry output of a full adder at a secondary output without any additional circuitry. The ULM, therefore, does not require reconfiguring programmable elements to change its logic functions and is capable of implementing a full adder with carry output. Accordingly, the ULM of the present invention provides a small and versatile combinational circuit for use in PLDs.
A further understanding of the nature and advantages of the present invention may be gained by reference to the following detailed description and diagrams.
FIG. 1 is a logic diagram of the ULM of the present invention;
FIG. 2 is a circuit schematic showing a transistor implementation of the ULM of the present invention; and
FIGS. 3A and 3B show logic cells using the ULM of the present invention implementing carry propagation circuitry.
A universal logic module (ULM) is a combinatorial logic circuit that can produce a set of multivariable 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) threevariable 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.
FIG. 1 shows a logic diagram of the threevariable ULM of the present invention. The ULM includes two 4:1 multiplexers 100 and 102, whose singular outputs feed two data inputs of a 2:1 multiplexer 104, respectively. An output of multiplexer 104 forms the output f of the ULM. Two select inputs of multiplexer 100 connect to the two select inputs of multiplexer 102 and connect to inputs b and c, respectively. The eight data inputs of the two 4:1 multiplexers 100 and 102 connect to various permutations of two inputs a1 and a2, and their complements. A select input of multiplexer 104 connects to a fifth input d. The output of multiplexer 102, carry, can realize a carry output of a full adder. The ULM, therefore, has five inputs a1, a2, b, c and d, and output f, and a carry output.
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 FIG. 1, in order to realize the ten different canonical forms of threevariable functions listed in the f(x,y,z) column.
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 threevariable 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 FIG. 1 can realize all 256 functions of three or fewer variables using the assignments shown in Table 1.
The ULM of FIG. 1 can also implement a twoinput full adder with carry output. The tenth function f(x,y,z)=x XOR y XOR z in Table 1 allows the ULM to implement a full adder by assigning, for example, x and y to the two inputs and z to carryin (C_{in}). The output multiplexer 102 in FIG. 1 generates the carry output function xy+xz+yz as shown on the last line of Table 1.
FIG. 2 shows a preferred embodiment of the circuit implementation of the ULM of FIG. 1. The 4:1 multiplexers are implemented using eight pass gates 200 arranged in four rows of two seriallyconnected transistors as shown in blocks 202 and 204. The gate terminals of pass gates 200 receive the select signals c and b and their complements. Two inverters 206 provide the complements of signals c and b to both multiplexer blocks 202 and 204. The four transistor rows of each block 202 and 204 receive signals a1, a2 and their complements at the input side, and connect together to form outputs 208 and 210, respectively, at the output side. The 2:1 multiplexer 104 includes two transistors 200, receiving outputs 208 and 210 at one end and connecting together at the other end to form output terminal f. The select signal d and its complement feed the gate terminals of transistors 200 of the 2:1 multiplexer 104. The output 210 of multiplexer block 204 forms the carry output. Inverters 206 generate the complements of the five input signals. It is possible to further reduce the transistor count for the circuit in FIG. 2. Because the circled pairs of transistors 200 act logically as two parallel transistors, they can be combined into a single, larger transistor, without affecting the operation of the circuit. This reduces the device count by four transistors.
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 flipflop which receives the output f at its input. The flipflop 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. FIG. 3A shows both these implementations in one circuit. Logic cells 300 includes a 2:1 multiplexer 302 that receives the signals c and c_{in }at its input terminals. The output of multiplexer 302 connects to the terminal of the ULM that was previously connected to the c signal. Input b can also be used as the carry input as shown in FIG. 3B), allowing the designer to select the one (i.e. either or c and b) that optimizes circuit layout (e.g. the input terminal closest to the carry terminal). The select input of multiplexer 302 is controlled by a programmable architecture bit (not shown). This logic cell 300 shows carry output feeding the c_{in }terminal of the next module 304 locally. The advantage of locally propagating the carry is in area savings as well as speed. Logic cell 304 is similarly constructed as logic cell 300 except for the fact that the carry output signal is not locally propagated, instead it connects to the programmable interconnect array 306. This will enable the carry output signal to connect to c_{in }of any other logic cell at the cost of silicon area and speed.
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 FIG. 2 may further provide for a programmable inversion of the output f. Therefore, the scope of the present invention should be determined not with reference to the above description but should, instead, be determined with reference to the appended claims, along with their full scope of equivalents.
Claims (39)
Priority Applications (3)
Application Number  Priority Date  Filing Date  Title 

US08/153,321 US5436574A (en)  19931112  19931112  Universal logic module with arithmetic capabilities 
US90007097A true  19970724  19970724  
US09/792,342 USRE38451E1 (en)  19931112  20010220  Universal logic module with arithmetic capabilities 
Applications Claiming Priority (1)
Application Number  Priority Date  Filing Date  Title 

US09/792,342 USRE38451E1 (en)  19931112  20010220  Universal logic module with arithmetic capabilities 
Related Parent Applications (1)
Application Number  Title  Priority Date  Filing Date  

US08/153,321 Reissue US5436574A (en)  19931112  19931112  Universal logic module with arithmetic capabilities 
Publications (1)
Publication Number  Publication Date 

USRE38451E1 true USRE38451E1 (en)  20040302 
Family
ID=31720097
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

US09/792,342 Expired  Lifetime USRE38451E1 (en)  19931112  20010220  Universal logic module with arithmetic capabilities 
Country Status (1)
Country  Link 

US (1)  USRE38451E1 (en) 
Cited By (3)
Publication number  Priority date  Publication date  Assignee  Title 

US20070075740A1 (en) *  20050223  20070405  Velogix, Inc.  Dedicated Logic Cells Employing Configurable Logic and Dedicated Logic Functions 
RU2472209C1 (en) *  20120208  20130110  Закрытое акционерное общество "ИВЛАОПТ"  Logic module 
RU2630394C2 (en) *  20151208  20170907  Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет"  Logic module 
Citations (11)
Publication number  Priority date  Publication date  Assignee  Title 

US3579119A (en) *  19680429  19710518  Univ Northwestern  Universal logic circuitry having modules with minimum inputoutput connections and minimum logic gates 
US4229803A (en) *  19780602  19801021  Texas Instruments Incorporated  I2 L Full adder and ALU 
US4541067A (en) *  19820510  19850910  American Microsystems, Inc.  Combinational logic structure using PASS transistors 
US4825105A (en) *  19840928  19890425  Siemens Aktiengesellschaft  Circuit for generation of logic variables, using multiplexes and inverters 
US4870302A (en) *  19840312  19890926  Xilinx, Inc.  Configurable electrical circuit having configurable logic elements and configurable interconnects 
US4912339A (en) *  19881205  19900327  International Business Machines Corporation  Pass gate multiplexer 
US5162666A (en) *  19910315  19921110  Tran Dzung J  Transmission gate series multiplexer 
US5198705A (en) *  19900511  19930330  Actel Corporation  Logic module with configurable combinational and sequential blocks 
US5220213A (en) *  19910306  19930615  Quicklogic Corporation  Programmable application specific integrated circuit and logic cell therefor 
US5274581A (en)  19920508  19931228  Altera Corporation  Look up table implementation of fast carry for adders and counters 
US5349250A (en) *  19930902  19940920  Xilinx, Inc.  Logic structure and circuit for fast carry 

2001
 20010220 US US09/792,342 patent/USRE38451E1/en not_active Expired  Lifetime
Patent Citations (11)
Publication number  Priority date  Publication date  Assignee  Title 

US3579119A (en) *  19680429  19710518  Univ Northwestern  Universal logic circuitry having modules with minimum inputoutput connections and minimum logic gates 
US4229803A (en) *  19780602  19801021  Texas Instruments Incorporated  I2 L Full adder and ALU 
US4541067A (en) *  19820510  19850910  American Microsystems, Inc.  Combinational logic structure using PASS transistors 
US4870302A (en) *  19840312  19890926  Xilinx, Inc.  Configurable electrical circuit having configurable logic elements and configurable interconnects 
US4825105A (en) *  19840928  19890425  Siemens Aktiengesellschaft  Circuit for generation of logic variables, using multiplexes and inverters 
US4912339A (en) *  19881205  19900327  International Business Machines Corporation  Pass gate multiplexer 
US5198705A (en) *  19900511  19930330  Actel Corporation  Logic module with configurable combinational and sequential blocks 
US5220213A (en) *  19910306  19930615  Quicklogic Corporation  Programmable application specific integrated circuit and logic cell therefor 
US5162666A (en) *  19910315  19921110  Tran Dzung J  Transmission gate series multiplexer 
US5274581A (en)  19920508  19931228  Altera Corporation  Look up table implementation of fast carry for adders and counters 
US5349250A (en) *  19930902  19940920  Xilinx, Inc.  Logic structure and circuit for fast carry 
NonPatent Citations (3)
Title 

"FLEX 8000 Programmable Logic Device Family," product Data Sheet May 1993, ver. 2, Altera Corporation Altera Corporation 101 Innovation Drive San Jose, CA 95134 (1993). 
"FLEX Programmable Logic," Product Information Bulletin Sep. 1992, ver. 1, Altera Corporation Altera Corporation 101 Innovation Drive San Jose, CA 95134 (1992). 
Universal Logic Modules by Harold S. Stone, Chapter IV of Recent Developments in Switching Theory pp. 229254, by Academic Press (1971).* * 
Cited By (6)
Publication number  Priority date  Publication date  Assignee  Title 

US20070075740A1 (en) *  20050223  20070405  Velogix, Inc.  Dedicated Logic Cells Employing Configurable Logic and Dedicated Logic Functions 
US20070085565A1 (en) *  20050223  20070419  Velogix, Inc.  Dedicated Logic Cells Employing Configurable Logic and Dedicated Logic Functions 
US7414431B2 (en) *  20050223  20080819  Cswitch Corporation  Dedicated logic cells employing configurable logic and dedicated logic functions 
US7836113B2 (en)  20050223  20101116  Agate Logic, Inc.  Dedicated logic cells employing configurable logic and dedicated logic functions 
RU2472209C1 (en) *  20120208  20130110  Закрытое акционерное общество "ИВЛАОПТ"  Logic module 
RU2630394C2 (en) *  20151208  20170907  Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ульяновский государственный технический университет"  Logic module 
Similar Documents
Publication  Publication Date  Title 

US4789951A (en)  Programmable array logic cell  
US5121006A (en)  Registered logic macrocell with product term allocation and adjacent product term stealing  
US4414547A (en)  Storage logic array having two conductor data column  
US5812479A (en)  Programmable logic array integrated circuits  
US5646547A (en)  Logic cell which can be configured as a latch without static one's problem  
JP3471088B2 (en)  Improved programmable logic cell array architecture  
US6191611B1 (en)  Driver circuitry for programmable logic devices with hierarchical interconnection resources  
US5430390A (en)  Programmable application specific integrated circuit and logic cell therefor  
US5742179A (en)  High speed programmable logic architecture  
EP0094234B1 (en)  Combinational logic structure using pass transistors  
US5473266A (en)  Programmable logic device having fast programmable logic array blocks and a central global interconnect array  
US5805477A (en)  Arithmetic cell for field programmable devices  
EP0463026B1 (en)  Configurable cellular array  
US5821773A (en)  Lookup table based logic element with complete permutability of the inputs to the secondary signals  
US5570051A (en)  Multiplexed bypassable memory devices with increased speed and improved flipflop utilization  
US5594366A (en)  Programmable logic device with regional and universal signal routing  
US7062520B2 (en)  Multiscale programmable array  
US6020759A (en)  Programmable logic array device with random access memory configurable as product terms  
US4876660A (en)  Fixedpoint multiplieraccumulator architecture  
US5352940A (en)  Ram convertible lookup table based macrocell for PLDs  
US6107822A (en)  Logic element for a programmable logic integrated circuit  
KR930004033B1 (en)  Input/output macro cell of programmable logic element  
US5675262A (en)  Fast carryout scheme in a field programmable gate array  
US5341044A (en)  Flexible configuration logic array block for programmable logic devices  
US6069490A (en)  Routing architecture using a direct connect routing mesh 
Legal Events
Date  Code  Title  Description 

FPAY  Fee payment 
Year of fee payment: 12 