Certain embodiments of the invention relate to logic circuits. More specifically, certain embodiments of the invention relate to combinational equivalence checking for threshold logic circuits.
The field of threshold logic is gaining prominence as an alternative to Boolean logic as a result of an increase in the availability of devices that implement threshold logic circuits efficiently, for example, current mode circuits and/or differential mode circuits. One of the many advantages of threshold logic is that logic primitives may be replaced by elements of a much larger class of functions known as threshold logic gates. For instance, each of the Boolean functions ab(c+d)+cd(a+b) and a(b+c+d)+b(c+d)+cd, may be realized by a single threshold logic gate. If a Boolean function may be realized as a network of threshold logic gates, significantly fewer nodes and a smaller network depth may be required.
There have been numerous efficient implementations of threshold logic gates in CMOS that have achieved high performance and significantly reduced area. CMOS circuits implementing Boolean logic may have higher functional yield in the presence of process variations, when compared to threshold logic circuits. A plurality of nano devices, for example, resonant tunneling diodes (RTDs), single electron transistors (SETs), quantum-dot cellular automata (QCA) cells and other nano devices have been implementing threshold logic circuits, and accordingly there is a need in the design automation community to design efficient tools for threshold logic.
The synthesis of a circuit may comprise transforming one representation of a function to another, usually to a more detailed specification. The process equivalence checking (EC) may be related to synthesis, and may entail demonstrating an equivalence of two functional representations. The function of a synthesized circuit may be verified with a given functional specification. In addition, engineering changes that may be introduced throughout a design process may introduce errors in the synthesized circuit. Demonstrating equivalence may also be required between two different representations of the same circuit generated at different phases in the design flow.
The naive way to determine the logic function of a threshold gate may be to try all 2n input combinations and determine the on-set of the function, and generate a sum-of-products (SOP) representation. One of the features of threshold gates is that they permit efficient realization (both in area and delay) of gates with large fan-in. Hence the naive approach may not be practical.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
A system and/or method is provided for combinational equivalence checking for threshold logic circuits, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.
Certain embodiments of the invention may be found in a method and system for combinational equivalence checking for threshold logic circuits. In various exemplary embodiments of the invention, one or more inputs may be received at a threshold logic gate. The one or more inputs may comprise one or more of binary inputs, weights, and/or weighted binary inputs, for example. The threshold function of the threshold logic gate may be recursively decomposed into a first function and a second function using cofactors of the threshold function. A Boolean function representation of the threshold logic gate may be generated based on the recursive decomposition of the threshold function. The generated Boolean function representation of the threshold logic gate may be a maximally factored form representation of a minimal sum of products (SOP) for the threshold logic gate. A logical equivalence of the threshold logic gate may be verified with one or more other logic circuits based on the generated Boolean function representation of the threshold logic gate.
A factored form may be maximally factored, if for every sum of products, there are no two syntactically equivalent factors in the product, and for every product of sums, there are no two syntactically equivalent factors in the sums. A SOP is a complete sum or a sum of all prime implicants and only prime implicants if and only if no term includes any other term, and the consensus of any two terms of the SOP either does not exist or is contained in some other term. The complete sum of a function F may be denoted by CS(F). For example, the complete sum of the function [ab+ab+c] is a+c.
An exact factored form of an SOP may be a factored form which when expanded by repeated algebraic multiplication only without absorbing terms, may result in the original SOP. For example, if the SOP of F=ab+bc+ca, the factored form, a(b+c+bc)+bc, is not an exact factored form even though F≡a(b+c+bc)+bc. The factored form, a(b+c)+bc, is an exact factored form of F, for example.
The iterated consensus is a method based on the consensus theorem that generates the complete sum of a function using any SOP. The iterated consensus method may add to the SOP, all the consensus terms of all pairs of cubes in the SOP. The iterated consensus method may then remove the terms that are present in other terms. This method may be repeated until no further consensus is possible. For example, if the SOP of F=x1x2+x2x3+x2x3x4, the iterated consensus of F=x1x2+x2x3+x1x3+x3x4, or the complete sum of F, (CS(F)).
The exemplary computing system environment 10 may be operational with numerous other general purpose or special purpose computing system environments or configurations, for example, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, networked peripherals, networked printers, and/or distributed computing environments that may comprise any of the above systems and/or devices.
The exemplary computing system environment 10 may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules may include routines, programs, objects, components, and/or data structures that may perform particular tasks or implement particular abstract data types. The exemplary method for combinational equivalence checking for threshold logic circuits may also be implemented in distributed computing environments where tasks may be performed by remote processing devices that may be linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
The computer system 110 may comprise a variety of computer readable media, for example. The computer readable media may be any available media that may be accessed by the computer 110 and may comprise volatile and/or nonvolatile media, removable and/or non-removable media. For example, computer readable media may comprise computer storage media and/or communication media. The computer storage media may be implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules and/or other data. The computer storage media may comprise, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store desired information and which may be accessed by the computer system 110. For example, the communication media may comprise wired media such as a wired network or a direct-wired connection, and/or wireless media such as acoustic, RF, infrared and other wireless media.
The system memory 130 may comprise computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), comprising basic routines that may enable transfer of information between elements within the computer system 110, such as during start-up, may be stored in the ROM 131. The RAM 132 may comprise data and/or program modules that may be immediately accessible to and/or presently being operated on by the processing unit 120. The system memory 130 may also comprise an operating system 134, application programs 135, other program modules 136, and/or program data 137.
The computer system 110 may also comprise other removable/non-removable, volatile/nonvolatile computer storage media. For example, a hard disk drive 141 may be operable to read from and/or write to non-removable, nonvolatile magnetic media. A magnetic disk drive 151 may be operable to read from and/or write to a removable, nonvolatile magnetic disk 152. An optical disk drive 155 may be operable to read from and/or write to a removable, nonvolatile optical disk 156 such as a CD ROM and/or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media may be used in the exemplary operating environment, such as, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, and/or solid state ROM. The hard disk drive 141 may be coupled to the system bus 121 via a non-removable memory interface such as interface 140, for example. The magnetic disk drive 151 and optical disk drive 155 may be coupled to the system bus 121 via a removable memory interface 150, for example.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer system 110 via input devices such as a keyboard 162 and pointing device 161, for example, a mouse, trackball or touch pad, for example. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, and/or a video input. These and other input devices may be coupled to the processing unit 120 through a user input interface 160 that may be coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB), for example. A monitor 191 or other type of display device may also be connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, other peripheral output devices may be coupled to the computer system 110, such as speakers 197, printer 196, and a video output, which may be connected through an output peripheral interface 195.
The computer system 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer system 180. The remote computer system 180 may be another personal computer, a server, a router, a network peripheral device, for example, a printer, a network PC, a peer device or other common network node, and may comprise many or all of the elements described above relative to the computer system 110. The logical connections depicted in
When used in a LAN networking environment, the computer system 110 may be connected to the LAN 171 via a network interface or adapter, for example, a network interface card (NIC) 170. When used in a WAN networking environment, the computer system 110 may comprise a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism.
In accordance with an embodiment of the invention, a method for combinational equivalence checking for threshold logic circuits may be described with reference to acts and symbolic representations of operations that may be performed by one or more computer systems 110 or by one or more circuits in a computer 110, unless indicated otherwise. As such, it may be understood that such acts and operations, which may be at times referred to as being computer-executed, include the manipulation by the processing unit 120 of the computer system 110 of electrical signals representing data in a structured form. This manipulation may transform the data or maintain it at locations in the system memory 130 of the computer system 110, which may reconfigure or otherwise alter the operation of the computer system 110 in a manner well understood by those skilled in the art. The data structures where data is maintained may be physical locations of the memory that may have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it may not be so limited, and the operation described hereinafter may also be implemented in hardware.
In accordance with an exemplary embodiment of the invention, the computer system 110 may be operable to verify a logical equivalence of a plurality of circuits. The computer system 110 may comprise a plurality of logic circuits, for example, one or more threshold logic circuits. The computer system 110 may comprise one or more circuits, for example, the processing unit 120, that is operable to receive one or more inputs at the threshold logic gate implementing a threshold function. The threshold function of the threshold logic gate may be recursively decomposed into a first function and a second function using cofactors of the threshold function. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate based on the recursive decomposition of the threshold function. The generated Boolean function representation of the threshold logic gate may be a maximally factored form representation of a minimal sum of products (SOP) for the threshold logic gate. The one or more circuits in the computer system 110 may be operable to verify a logical equivalence of the threshold logic gate with one or more other logic circuits based on the generated Boolean function representation of the threshold logic gate.
The threshold logic gate 100 may comprise one or more of current mode circuits, differential mode circuits, capacitors, complementary metal oxide semiconductor (CMOS) circuits, n-type metal oxide semiconductor (nMOS) circuits, combinational logic circuits, counters, switches, latches, registers, clocks, buffers, multiplexers, demultiplexers and/or integrated circuits. Notwithstanding, the invention may not be so limited and other digital circuits may be utilized in the threshold logic gate 100 to implement the threshold logic function F, without limiting the scope of the invention.
The output y of the threshold gate 100 may be generated according to the following equation:
If a=1, then no combination of b and c may satisfy the inequality in equation (2). If a=0, then either b=1 or c=1 may satisfy the inequality in equation (2). Accordingly, the logic function representation of the threshold logic gate 150 may be equivalent to y=a′(b+c). Notwithstanding, the invention may not be so limited and the threshold logic gate 150 may be operable to receive any number of inputs, without limiting the scope of the invention.
In step 164, it may be determined whether the number of binary inputs n to the threshold logic gate 100 is equal to one (1). If the number of binary inputs n to the threshold logic gate 100 is equal to one (1), the threshold logic gate 100 may comprise one binary input x1 with a corresponding weight w1, and control passes to step 166.
In step 166, it may be determined whether the weight w1 is greater than or equal to the threshold value T and the threshold value T is lesser than or equal to zero (0). If the weight w1 is greater than or equal to the threshold value T and the threshold value T is lesser than or equal to zero (0), control passes to step 168. In step 168, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to one (1). If the weight w1 is not greater than or equal to the threshold value T or the threshold value T is not lesser than or equal to zero (0), control passes to step 170.
In step 170, it may be determined whether the weight w1 is greater than or equal to the threshold value T and the threshold value T is greater than zero (0). If the weight w1 is greater than or equal to the threshold value T and the threshold value T is greater than zero (0), control passes to step 172. In step 172, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to the binary input x1. If the weight w1 is not greater than or equal to the threshold value T or the threshold value T is not greater than zero (0), control passes to step 174.
In step 174, it may be determined whether the weight w1 is lesser than the threshold value T and the threshold value T is lesser than or equal to zero (0). If the weight w1 is lesser than the threshold value T and the threshold value T is lesser than or equal to zero (0), control passes to step 176. In step 176, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to an inverse of the binary input x1 (x1′). If the weight w1 is not lesser than the threshold value T or the threshold value T is not lesser than or equal to zero (0), control passes to step 178. In step 178, the weight w1 is lesser than the threshold value T and the threshold value T is greater than zero (0). In step 180, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to zero (0).
In step 164, if the number of binary inputs n to the threshold logic gate 100 is more than one (1), control passes to step 182. In step 182, it may be determined whether a sum of negative weights is greater than or equal to the threshold value T according to equation (3):
If the sum of negative weights is greater than or equal to the threshold value T, control passes to step 168. If the sum of negative weights is not greater than or equal to the threshold value T, control passes to step 184. In step 184, it may be determined whether a sum of positive weights is lesser than the threshold value T according to equation (4):
If the sum of positive weights is lesser than the threshold value T, control passes to step 180. If the sum of positive weights is not lesser than the threshold value T, control passes to step 186.
In step 186, the threshold function F may be recursively decomposed into a first function F1 and a second function F2 using cofactors of the threshold function F. The first function F1 may be generated, for example, by recursively decomposing the threshold function F into [W\wk; T−wk], where wk is a largest absolute weight and W\wk=(w1,w2, . . . ,wk−1,wk+1, . . . ,wn) is a set of weights excluding wk. The second function F2 may be generated, for example, by recursively decomposing the threshold function F into [W\wk; T], where wk is a largest absolute weight and W\wk=(w1,w2, . . . ,wk−1,wk+1, . . . ,wn) is a set of weights excluding wk.
In step 188, it may be determined whether the largest absolute weight wk is greater than zero (0). If the largest absolute weight wk is greater than zero (0), control passes to step 190. In step 190, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to [wk. F1+F2], where xk is the binary input to the threshold logic gate 100 corresponding to the largest absolute weight wk. Control then returns to step 164. If the largest absolute weight wk is not greater than zero (0), control passes to step 192. In step 192, the Boolean function representation of the threshold logic gate 100 may be generated to be equivalent to [F1+xk′. F2], where xk′ is the inverse of the binary input xk to the threshold logic gate 100 corresponding to the largest absolute weight wk. Control then returns to step 164.
For example, the threshold function of the threshold logic gate 100, F (a, b, c)≡[2, 1, −1; 2], where the weights, wa=2, wb=1, wc=−1 and the threshold value T=2. The one or more circuits in the computer system 110 may be operable to recursively decompose the threshold function F into a first function F1 and a second function F2 using cofactors of the threshold function F.
Each of the functions F1 and F2 may be further recursively decomposed into another first function F11 and another second function F12 using cofactors of the previously generated functions F1 and F2 respectively. Accordingly, the function F1=[1, −1; 0] may be recursively decomposed into b·F11+F12, where F11=[−1; −1] and F12=[−1; 0] and the function F2=[1, −1; 2] may be recursively decomposed into zero (0). Furthermore, the one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic function F11=[−1; −1] to be equivalent to one (1), since the weight −1 is greater than or equal to the threshold value −1 and the threshold value −1 is lesser than or equal to zero (0). The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic function F12=[−1; 0] to be equivalent to an inverse of the binary input c (c′), since the weight −1 is lesser than the threshold value zero (0) and the threshold value zero (0) is equal to zero (0). Accordingly, the one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 100 based on the recursive decomposition of the threshold function F to be equivalent to a(b+c′). The generated Boolean function representation of the threshold logic gate 100 is a maximally factored form representation of a minimal sum of products (SOP) for the threshold logic gate 100.
The NAND gate 202 may comprise suitable logic and/or circuitry to receive binary inputs i2 and i3, and generate an output to the NAND gate 206. The NAND gate 204 may comprise suitable logic and/or circuitry to receive binary inputs i3 and i4, and generate an output o2′ to the NAND gate 206. The NAND gate 206 may comprise suitable logic and/or circuitry to receive as binary inputs, the outputs of NAND gates 202 and 204, and generate an output to NAND gate 208. The NAND gate 208 may comprise suitable logic and/or circuitry to receive as binary inputs, i1 and an output of NAND gate 206, and generate an output o1′.
Table 1 illustrates a set of generated outputs of a two input NAND gate, for example, 202, 204, 206, and 208 for a corresponding set of binary inputs.
The NAND gate 252 may comprise suitable logic and/or circuitry to receive binary inputs i2 and i3, and generate an output to the OR gate 256. The NAND gate 254 may comprise suitable logic and/or circuitry to receive binary inputs i3 and i4, and generate an output to the OR gate 256. The OR gate 256 may comprise suitable logic and/or circuitry to receive as binary inputs, the outputs of NAND gates 252 and 254, and generate an output to NAND gates 258 and 260. The NAND gate 258 may comprise suitable logic and/or circuitry to receive as binary inputs, i1 and the output of the OR gate 256, and generate an output, o1″. The NAND gate 260 may comprise suitable logic and/or circuitry to receive as binary inputs, i4 and an output of the OR gate 256, and generate an output, o2″. Each of the NAND gates 252, 254, 258, and 260 may be operable according to Table 1.
Table 2 illustrates a set of generated outputs of a two input OR gate, for example, 256 for a corresponding set of binary inputs.
The miter circuit 300 may comprise suitable logic and/or circuitry to verify an equivalence of a plurality of logic circuits. For example, in one embodiment, the logic circuit f 302 may be a threshold logic gate 100 and g 304 may be another logic circuit, for example, one of a threshold logic circuit, a Boolean representation of a threshold logic gate, a Boolean function, and/or a combinational circuit. Notwithstanding, the invention may not be so limited, and other logic circuits may be utilized without limiting the scope of the invention. Each of the logic circuits f 302 and g 304 may comprise suitable logic and/or circuitry to be enabled to receive a plurality of binary inputs and generate an output to the XNOR gate 306. The XNOR gate 306 may comprise suitable logic and/or circuitry to receive as binary inputs, the outputs of logic circuits, f 302 and g 304, and generate an output according to Table 3.
Table 3 illustrates a set of generated outputs of a two input XNOR gate, for example, 306 for a corresponding set of binary inputs.
Notwithstanding, the invention may not be so limited, and other logic circuits may be utilized to implement the miter circuit 300, without limiting the scope of the invention. Accordingly, the miter circuit 300 may generate an output equivalent to one (1), if the logic circuit f 302 is equivalent to the logic circuit g 304. Furthermore, the miter circuit 300 generates an output equivalent to zero (0), if the logic circuit f 302 is not equivalent to the logic circuit g 304.
In accordance with an embodiment of the invention, the miter circuit 300 may be constructed, wherein the logic circuit f 302 may receive as binary inputs i1, i2, i3 and i4, and generate as an output, o1′. Similarly, the logic circuit g 304 may receive as binary inputs i1, i2, i3 and i4, and generate as an output, oi″. The miter circuit 300 may be operable to verify a logical equivalence of the logic circuits f 302 and g 304, and generate an output equivalent to one (1), if the logic circuit f 302 is equivalent to the logic circuit g 304.
In accordance with another embodiment of the invention, the miter circuit 300 may be constructed, wherein the logic circuit f 302 may receive as binary inputs i1, i2, i3 and i4, and generate as an output, o2′. Similarly, the logic circuit g 304 may receive as binary inputs i1, i2, i3 and i4, and generate as an output, o2″. The miter circuit 300 may be operable to verify a logical equivalence of the logic circuits f 302 and g 304, and generate an output equivalent to one (1), if the logic circuit f 302 is equivalent to the logic circuit g 304.
The Boolean Expression Diagram 350 is a data structure that may be generated by extending the reduced ordered binary decision diagram (OBDD) representation with operator vertices. The Boolean Expression Diagram 350 may be similar to a logic graph representation of a Boolean circuit, for example, wherein each logic gate may be replaced by an equivalent operator node and each binary input may be replaced by a corresponding variable node. The variable nodes may be connected to the two terminal nodes (0 and 1). For example, with reference to
The Boolean Expression Diagram 350 representation may not be canonical but is polynomial in size of the original circuit. H. Hulgaard et al., “Equivalence Checking of Combinational Circuits Using Boolean Expression Diagrams”, IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, July 1999 provides a detailed description of constructing a Boolean Expression Diagram, and is hereby incorporated by reference in its entirety.
The Boolean Expression Diagram 350 may have several advantages. For example, in one embodiment, the Boolean Expression Diagram 350 may provide for efficient hashing to simplify and speedup identification of structurally isomorphic parts of the plurality of logic circuits. Furthermore, the Boolean Expression Diagram 350 may avoid creating individual OBDDs for logic circuits f 302 and g 304, and may enable construction of an OBDD of a reduced Boolean Expression Diagram of the miter circuit 300 directly.
The threshold logic gate 402 may comprise suitable logic and/or circuitry to implement a threshold function Th1=[W;T], where W is a set of input weights, W=(−1, 2, −1), T=1 is a threshold value of the threshold logic gate 402, and X is a set of 3 binary inputs to the threshold logic gate 402, X={b, d, c}. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 402 based on the method 160 described in
The threshold logic gate 404 may comprise suitable logic and/or circuitry to implement a threshold function Th2=[W;T], where W is a set of input weights, W=(2, 1, 1), T=3 is a threshold value of the threshold logic gate 404, and X is a set of 3 binary inputs to the threshold logic gate 404, X={X2, c, a}. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 404 based on the method 160 described in
The threshold logic gate 406 may comprise suitable logic and/or circuitry to implement a threshold function Th3=[W;T], where W is a set of input weights, W=(−1, 1), T=0 is a threshold value of the threshold logic gate 406, and X is a set of 2 binary inputs to the threshold logic gate 406, X={a, b}. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 406 based on the method 160 described in
The threshold logic gate 408 may comprise suitable logic and/or circuitry to implement a threshold function Th4=[W;T], where W is a set of input weights, W=(2, 1, 1), T=2 is a threshold value of the threshold logic gate 408, and X is a set of 3 binary inputs to the threshold logic gate 406, X={X1, a, b}. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 408 based on the method 160 described in
The threshold logic gate 410 may comprise suitable logic and/or circuitry to implement a threshold function Th5=[W;T], where W is a weight, W=(−1), T=0 is a threshold value of the threshold logic gate 410, and X is a single binary input to the threshold logic gate 410, X={X0}. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 410 based on the method 160 described in
In accordance with an embodiment of the invention, the miter circuit 300 may be constructed, wherein the logic circuit f 302 may receive as binary inputs a, b, c, and d, and generate as an output, q-Th, where q-Th=X2(c+a), where X2=d(b′+c′). Similarly, the logic circuit g 304 may receive as binary inputs a, b, c, and d, and generate as an output, q-Bool, where q-Bool=d(ab′+ac′+b′c). The miter circuit 300 may be operable to verify a logical equivalence of the logic circuits f 302 and g 304, and generate an output equivalent to one (1), if the logic circuit f 302 is equivalent to the logic circuit g 304.
In accordance with an embodiment of the invention, the miter circuit 300 may be constructed, wherein the logic circuit f 302 may receive as binary inputs a and b, and generate as an output, p-Th, where p-Th=X0′, where X0=X1+ab, where X1=a′b′. Similarly, the logic circuit g 304 may receive as binary inputs a and b, and generate as an output, p-Bool, where p-Bool=(a+b)(a′+b′). The miter circuit 300 may be operable to verify a logical equivalence of the logic circuits f 302 and g 304, and generate an output equivalent to one (1), if the logic circuit f 302 is equivalent to the logic circuit g 304.
With reference to
In accordance with an embodiment of the invention, the one or more circuits in the computer system 110 may be operable to generate the Boolean function representations of one or more other logic circuits, for example, p-Bool and q-Bool. The one or more circuits in the computer system 110 may be operable to generate one or more Boolean Expression Diagrams, for example, Boolean Expression Diagram 450 for each of the generated Boolean function representations, p-Bool, q-Bool, p-Th and q-Th. The generated Boolean Expression Diagram 450 may be reduced to a binary decision diagram (BDD) and further to the constant one (1). Accordingly, the one or more circuits in the computer system 110 may be operable to verify the logical equivalence of the threshold logic circuit 400, p-Th and q-Th, with the Boolean function representation, p-Bool and q-Bool based on the generated Boolean Expression Diagram 450. Notwithstanding, the invention may not be so limited, and other tools and/or logic graphs may be utilized to verify a logical equivalence of a plurality of circuits, without limiting the scope of the invention.
In step 506, a miter circuit may be constructed, that receives as binary inputs, the outputs generated by steps 502 and 504, and generates an output. In step 508, one or more Boolean Expression Diagrams may be generated for the miter circuit of the generated Boolean function representations from steps 502 and 504. In step 510, it may be determined whether the generated one or more Boolean Expression Diagrams reduce to a constant one (1). If the generated one or more Boolean Expression Diagrams reduce to a constant one (1), control passes to step 512. In step 512, the threshold logic circuit is equivalent to the one or more other logic circuits. If the generated one or more Boolean Expression Diagrams does not reduce to a constant one (1), control passes to step 514. In step 514, the threshold logic circuit is not equivalent to the one or more other logic circuits.
In accordance with an embodiment of the invention, a computer system for verifying a logical equivalence of a plurality of circuits may comprise one or more circuits for use in the computer system 110. The one or more circuits in the computer system 110 may be operable to receive one or more inputs, for example, weighted binary inputs (w1x1, w2x2, . . . , wnxn) at the threshold logic gate 100. Notwithstanding, the invention may not be so limited, and the one or more inputs may comprise one or more of binary inputs, weights, and/or weighted binary inputs, without limiting the scope of the invention. The one or more circuits in the computer system 110 may implement a threshold function F=[W;T] of the threshold logic gate 100, where W is a set of input weights, W=(w1, w2, . . . , wn), X is a set of n binary inputs to the threshold logic gate 100, X={x1, x2, . . . , xn}, and T is a threshold value of the threshold logic gate 100.
In accordance with an embodiment of the invention, the threshold logic gate 100 may comprise one binary input x1 with a corresponding weight w1. The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to one (1), if the weight w1 is greater than or equal to the threshold value T and the threshold value T is lesser than or equal to zero (0). The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to the binary input x1, if the weight w1 is greater than or equal to the threshold value T and the threshold value T is greater than zero (0). The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to an inverse of the binary input x1 (x1′), if the weight w1 is lesser than the threshold value T and the threshold value T is lesser than or equal to zero (0). The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to zero (0), if the weight w1 is lesser than the threshold value T and the threshold value T is greater than zero (0).
In accordance with an embodiment of the invention, if the threshold logic gate 100 may comprise more than one binary input, the one or more circuits in the computer system 110 may be operable to determine whether a sum of negative weights is greater than or equal to the threshold value T. The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate to be equivalent to one (1), if the sum of the negative weights is greater than or equal to the threshold value T according to equation (3). The one or more circuits in the computer system 110 may be operable to determine whether a sum of positive weights is lesser than the threshold value T. The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate to be equivalent to zero (0), if the sum of the positive weights is lesser than the threshold value T according to equation (4).
The one or more circuits in the computer system 110 may be operable to recursively decompose the threshold function F into a first function F1 and a second function F2 using cofactors of the threshold function F. The one or more circuits in the computer system 110 may be operable to generate a Boolean function representation of the threshold logic gate 100 based on the recursive decomposition of the threshold function F. The generated Boolean function representation of the threshold logic gate 100 may be a maximally factored form representation of a minimal sum of products (SOP) for the threshold logic gate 100.
The first function F1 may be generated, for example, by recursively decomposing the threshold function F into [W\wk; T−wk], where wk is a largest absolute weight and W\wk=(w1,w2, . . . ,wk−1,wk+1, . . . ,wn) is a set of weights excluding wk. The second function F2 may be generated, for example, by recursively decomposing the threshold function F into [W\wk; T], where wk is a largest absolute weight and W\wk=(w1,w2, . . . ,wk−1,wk+1, . . . ,wn) is a set of weights excluding wk.
The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to [xk. F1+F2], if wk is greater than zero (0), where xk is the binary input to the threshold logic gate 100 corresponding to the largest absolute weight wk. The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the threshold logic gate 100 to be equivalent to [F1+xk′. F2], if wk is lesser than zero (0), where wk′ is the inverse of the binary input xk to the threshold logic gate 100 corresponding to the largest absolute weight wk.
In accordance with another embodiment of the invention, a threshold logic circuit, for example, 400 may comprise one or more of the threshold logic gates, for example, 402, 404, 406, 408 and 410 and/or one or more Boolean logic circuits, for example, p-Bool and q-Bool. The one or more circuits in the computer system 110 may be operable to generate the Boolean function representation of the one or more threshold logic gates, for example, 402, 404, 406, 408 and 410. The one or more circuits in the computer system 110 may be operable to verify the logical equivalence of the threshold logic circuit, for example, 400 with the one or more other logic circuits, for example, p-Bool and q-Bool based on the generated Boolean function representation of the one or more threshold logic gates, for example, 402, 404, 406, 408 and 410.
In accordance with another embodiment of the invention, the one or more circuits in the computer system 110 may be operable to generate the Boolean function representations of one or more other logic circuits, for example, p-Bool and q-Bool. The one or more circuits in the computer system 110 may be operable to generate one or more Boolean Expression Diagrams, for example, 450 based on the generated Boolean function representations, for example, p-Th, q-Th, p-Bool and q-Bool. The one or more circuits in the computer system 110 may be operable to verify the logical equivalence of the threshold logic gate 100, for example, p-Th and q-Th with the one or more other logic circuits, for example, p-Bool and q-Bool based on the generated Boolean Expression Diagrams, for example, 450.
Another embodiment of the invention may provide a machine and/or computer readable storage and/or medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for combinational equivalence checking for threshold logic circuits.
Accordingly, the present invention may be realized in hardware, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
This patent application makes reference to, claims priority to and claims benefit from U.S. Provisional Patent Application Ser. No. 61/035,521, filed on Mar. 11, 2008.
This invention was made with government support under grant number 0702831/CCF0702831 awarded by NSF. The Government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
61035521 | Mar 2008 | US |