This logic consists of a memristors acting as weights to the inputs followed by threshold operations emulating neuronal synapse. Using this Boolean logic, a processing unit that can compute Fourier transform of a given set of inputs was developed. Various comparisons of the circuit are found to be advantageous in implementing neuromorphic circuits. The existing logic families were carried out and the proposed logic family was found too advantageous in many ways. Edited by Goran S. Nikolic, Milorad D. Cakic and Dragan J.
Human brain is the processing centre of human nervous system. Average adult human brain weighs about 1. On average, each neuron is connected to other neurons through about 10, synapses. The brain's network of neurons forms a massively parallel information processing system.
Memorization of the results of operations such as multiplication tables reduces the need to use complex cognitive processing, such as going through the learning processes every time the task is given.avion-ltd.ru/mambots/invisible/2076-comment-retrouver.html
The ability of the brain to process computational operations in real time is reflective of an active working memory. The studies using neuroimages indicate 10 separate regions in the brain that contribute to even simple task of subtraction of two numbers. The main areas of activation for this simple task include fusiform gyrus, parietal cortices, lateral and medial parts of the temporal lobe and inferior parts of the frontal lobes. The interconnections between the modules and the way they interact with each other for different set of arithmetic operations are different.
It is also found that there is a separate network for estimation bilateral inferior parietal cortex as opposed to computation left parietal and frontal cortices. These features point out the fact that there is one specific unit for performing computation; instead it is a collaborative effort between various regions in the brain.
These features of brain are similar to the normal CPU architecture—a separate unit for arithmetic and logic functions, with a difference in the mode of operation. Instead of doing algorithmic approach, the brain works based on what it learned or we can say that the patterns it has learned. In the brain the basic functional unit is a cell, called neuron.
For each function, there will be separate set of neuron cells, which are learned to do that particular task. Neurons are the basic building blocks of the nervous system, which includes brain, spinal cord and peripheral ganglia. Neurons are electrically excitable cells and they process and transmit information through electrochemical signals. Neurons connect together to form what is known as neural networks. It consists of a cell body, dendrites and axons. Cell body or the soma is bulbous in shape and contains the nucleus. The cell body or the soma contains many cell organelles, including Nissl granules that are the site of protein synthesis.
Nissl granules contain endoplasmic reticulum and free polyribosomes. Dendrites are the branched projections of the neuron arising from the cell body and its function is to receive the electrochemical simulations from other neurons and to conduct it to the cell body. The electrical simulations are transmitted from one neuron to the dendrite of another neuron at the synaptic terminals. Another important part of the neuron is the axon.
Axon arises from the cell body at a site called axon hillock and extends to over 1 m in length. A neuron can have multiple dendrites, but only one axon. Axon is covered by a layer of dielectric material myelin, known as myelin sheath. Before termination, the axon gets divided into a large number of branches. The axon terminals of one neuron connect to the dendrites of another neuron through synapses.
Electrochemical signals are transmitted from one neuron to another through synapses. Chemicals known as neurotransmitters are released from the presynaptic neuron, which binds to the receptors located at the dendrites of the postsynaptic neurons. These synaptic vesicles, when excited, migrate towards the synapse and get attached to the synapse and release the chemical ions through the semipermeable membrane of the synapses.
The major ions that are involved in the process are sodium, potassium, chlorine and calcium. Due to the ion exchange between neurons, a gradient in the ion concentration arises on either side of the semipermeable membrane. Due to this ion concentration difference, a potential will be generated, known as Nernst potential. This is how a biological neuron transmits signals.
There are several differences between the processing in human brain and processing in a computer. One of the most important differences is that brain is analogue whereas the computers are digital. But we can find a superficial similarity between neurons and digital circuits in the aspect that neurons fire an action potential when they reach a threshold value.
In computers, information in memory is accessed by polling its precise memory address.
Human brain can be considered as a massively parallel machine, where different functions are carried out simultaneously in different parts of the brain. Brain has got several dedicated modules for carrying out different functions. But if we consider the case of computers, the processing is in modular and serial in nature. The brain has got a body at its disposal. This may seem to be trivial, but this is a major difference which gives the humans a clear advantage over the computers.
Once the brain takes a decision based on the input signals, the brain directs the body to respond to the signals. But in computers, although it can take decisions based on the input signals, there is no body so that it can respond to the stimulus. Although there are several other differences, one of the most important differences between brain and computing processors is that there exists no distinction between memory and processing architecture in brain.
These two important activities are not separable. As the neurons process information, they also modify their synapses that are the substrate of memory. But in computers there exist a clear distinction between processor and memory. Memristor is considered to be the fourth fundamental electronic component. Prior to the s, only resistor, capacitor and inductor were known. No component showing the property of memristance was known to the scientific community. He reasoned the existence of the fourth element through symmetry arguments.
Although he showed that the memristor has many interesting and valuable circuit properties, he was unable to implement the memristor in the form of a physical device without an internal power supply. One of the most advertised and commercially inclined versions of the memristor was develop by HP Labs that was based on a thin film of titanium dioxide [ 4 , 5 ].
The main reason that gained attention for this device was the possibility to scale the device beyond the traditional CMOS limits. While, there is debate on the charge transport mechanisms and resistance switching behaviours, the hypothesis is that the hysteresis requires some sort of atomic rearrangement that modulates the electronic current. The undoped region is insulated and has higher resistance than the doped region.
The effective resistance within the memristor is determined by the boundary between the doped and undoped regions. Let D be the total width of the TiO 2 layer and W be the width of the doped region. Under the situation, when a positive voltage at the side of the doped region and negative voltage at the side of the undoped region, the oxygen vacancies move from the doped side to the undoped side, thus, increasing the width W of the doped region.
This results in the overall resistance of the memristor.
- Values of Beauty: Historical Essays in Aesthetics!
- Citations per year;
- Shop by category.
If the polarity of applied voltage is reversed, that is, positive potential is applied to the undoped side and negative potential is applied to the doped side, then the width of the undoped region increases, thereby increasing the effective resistance of the device. When input voltage is withdrawn or when there is no potential difference between the terminals, the memristor maintains the boundary between the doped and undoped region, since the oxygen ions remain immobile after removal of the input voltage. Thus, the resistance will be maintained at the same value before withdrawing the input voltage.
The resistance of the memristor increases when current flows through it in one direction and the resistance value decreases when the current flows through it in the opposite direction. It can retain the resistance value it had at that point of time, if the current is stopped. When the potential applied is reversed, the width of the undoped region increases resulting in an increase in effective resistance.
The high resistance blocks any reverse leakage current and adding more inputs, the collective current does not increase significantly as the effective resistance remains constant. Generally, indicative of a pinched hysteresis effect [ 3 , 4 , 6 ], the changes in the slope indicate the switching behaviour, with each of the switch having at least two resistance states. With change in operating frequencies, the resistance values of the state become equal at high frequencies.
Over the years, there have been several efforts to manufacture memristors. The various attempts include polymeric or ionic memristors, resonant tunnelling diode memristors, manganite memristors and spintronic memristors. In addition to the memristor devices, there are circuits that emulate the memristor behaviour, generally referred to as memristive systems.
The memristors can be also used to implement multilevel memories [ 7 , 8 ] and analogue memories [ 9 ]. They also find application in configurable logic arrays [ 10 ]. Resistive threshold logic [ 11 , 12 ] is a new logic family based on a resistive voltage divider and threshold logic, which is the hardware implementation of the neuron cell by configuring the cognitive memory network [ 13 ].
This circuit is capable of doing all Boolean logic [ 14 , 15 ]. For a straight forward approach, we started by using semiconductor resistors for the resistive divider. The input to the resistive divider is voltage levels that can be equated to the logic inputs [ 10 ] of a digital logic gate. Based on the logic functionality required, predefined threshold levels will be used in the thresholding part.
To find the m value in Eq. And to solve the equation V L is taken as 0 V. But there are certain drawbacks in using semiconductor resistors for building the voltage divider. One of the most important factors is the large leakage current of the semiconductor resistors. When the number of inputs increases the problem of leakage current becomes prohibitively high. But in practical implementations having a large number of inputs, these changes in the resistance value will have an adverse effect on the output of the circuit. The representation can be changed and the method will work for all representations of function cofactoring.
The TL circuit synthesizer 24 accepts the Boolean function 26 as input in various forms such as a truth table and factored form, etc. The cofactor tree data structure 30 is generated by cofactoring the Boolean function 26 into constituent positive and negative cofactors. Cofactoring continues to yield constituent positive and negative cofactors for each positive and the negative cofactor. Cofactoring is repeated until a leaf node is encountered within the cofactor data tree structure This leaf node is dependent on a cofactor tree representation chosen.
Since cofactors of the leaf nodes 34 are always threshold, all the leaf nodes 34 of the cofactor tree data structure 30 are threshold. In this way, the threshold determining function 36 can determine if the function of any node in the cofactor tree data structure 30 is threshold, when its cofactors are known to be threshold. If the threshold determining function 36 determines that a cofactor of the Boolean function 26 is threshold, the process continues with its parent node.
In contrast, if a cofactor of the Boolean function 26 is determined to be non-threshold, the cofactor is sent to a decomposition function The threshold cofactor i. The remainder function i. All cofactors associated with nodes of the cofactor tree data structure 30 are processed in the same manner until a root node 40 of the cofactor tree data structure 30 is eventually processed.
The computer system 42 includes a user interface 44 for receiving the Boolean function 26 FIG. A memory 46 is for storing the cofactor tree data structure 30 FIG. A processor 48 is for executing the software code comprising the TL circuit synthesizer An optional network interface 50 is useable to transmit data such as the synthesized threshold circuit 28 and the Boolean function 26 over a network such as the Internet. In order to disclose further details of the present disclosure, additional definitions are provided. A positive threshold function is one in which all the variable weights in a weight-threshold assignment are positive.
A positive threshold function is also a positive unate function. Support Set: The set of all variables on which a function depends is called the support set of the function. Don't care variables do not belong to the support set of a function. The max literal of a function F is the literal that occurs most frequently among the largest cubes in F. In the case of a tie, then the tie among those literals is broken by comparing their frequency among the next smaller size cubes.
Among a, d, e , a occurs most often in the next largest cubes, namely, abc. Hence a is the max literal. It is also known that for a threshold function F, Supp F can be totally pseudo-ordered using the -relation. Factorization of a Boolean function represented in SOP form is done to reduce the number of literals and thereby obtain more compact representations. Algebraic factorization is the algebraic division of a Boolean function.
Q and R may be further factored to obtain a more compact factored form. Many different factoring techniques have been developed. The main difference between these different techniques is the way in which the divisors are chosen. One factoring technique called the best literal factorization uses a literal for the divisor that occurs in the greatest number of cubes.
The factorization represented in FIG. A left child node represents the quotient obtained by algebraic division and a right child node represents the remainder. MML factorization is very similar to the best literal factorization in that a single literal is used as a divisor, but MML factorization has novelty in the technique used to choose the divisor D. For instance, let C j represent the set of all cubes in an SOP that contain j literals.
The MML is a literal that occurs in the greatest number of cubes in C k , where k is the size of the smallest cube. In case the tie is not broken even after comparing the variable occurrences in C 1 , where 1 is the size of the largest cube, the tie is broken arbitrarily. Turning back to FIG. An MML factor tree, such as the cofactor tree data structure 30 , is constructed from the Boolean function 26 , which can be in an SOP form. To make the factor tree more compact, the SOP form of the Boolean function 26 is minimal with respect to single cube containment.
Although MML factorization is not necessary to obtain the cofactor tree data structure 30 , it has some convenient features. For a threshold function, the MML represents the variable with the highest weight. All literals of the SOP form are assumed to be positive without loss of generality. All weights that are assigned during the decomposition procedure are thus positive. The exact weights can be easily obtained by the use of Lemma 6 Appendix I. It is important to note that the cofactor tree data structure 30 is a general abstraction for concrete data structures used by existing circuit synthesis tools.
A BDD one manifestation of the cofactor tree data structure 30 is one of the most popular graphical representations of cofactoring used by existing circuit synthesis and analysis tools. In a preferred embodiment, the disclosed MML factor tree has many convenient features when implemented as the cofactor tree data structure In this example the cofactor tree data structure 30 is of the preferred MML type. The threshold determining function 36 FIG. If so, the weights for the threshold functions are determined; otherwise, the Boolean function 26 FIG.
Lemma 5 Appendix I states that F is not a threshold function if, in a cofactor tree, the support set of one child is not contained in the support set of the other child. Therefore, the threshold determining function 36 checks for support set containment step If F is determined not to be threshold, F is restructured step If the weights are the same, then F will be a threshold function Lemma 1, Appendix I and weights are assigned step to the leaf nodes of F also indicated in Lemma 1, Appendix I.
In contrast, if the weights are not the same, F may or may not be a threshold function. If the weights are not the same, the EX-I procedure checks to determine if the weight of F x holds i. If so, F is a threshold function and weights are assigned to the corresponding node in the cofactor tree data structure 30 step Otherwise, F is not threshold and F is restructured step In order to increase the chance of identifying threshold functions, the following rules are used to assign weights to the leaf nodes.
Note that all literals are treated as positive literals:. The leaf nodes are trivial threshold functions whose weight-threshold pairs can be trivially assigned. Now consider the parent node. Both children satisfy Lemmas 5 and 4 Appendix I , and have the same weights. Hence weight-threshold assignment for the parent node can be determined by Lemma 1 Appendix I.
The restructuring of the factor tree is done when the node F is declared to be a non-threshold function, even though its children are threshold. When a node is not threshold but the children of the node are threshold, the MML factor tree is decomposed. The larger of the two child nodes the one with the bigger support set is removed any other criteria can be used for selecting the child to decompose , and the MML factor tree is modified so that more threshold functions may be identified.
Similar rules are used if a BDD is used as the cofactor tree representation. However, in the rest of the discussion only the MML factor tree representation is considered.
Threshold logic - a synthesis approach. - Semantic Scholar
The function of the child node with a larger support set is assigned a single literal, in this case X, and the tree is reordered. Reordering is straightforward if the left child node is replaced by a literal. Reordering is more involved if the right child node is replaced by a literal. Note that this reordering does not change the function represented by the tree.
The procedure only helps to identify sub trees in the MML factor tree that represent threshold functions. A threshold circuit is a directed graph. The nodes in the graph of FIG. Each threshold element has a weight-threshold assignment that fully characterizes the element. The objective of the synthesis procedure is to generate a threshold circuit that implements the specified function. The threshold identification methodology developed earlier is an integral part of the synthesis procedure. Note that the identification procedure identifies sub functions that are threshold.
If repeated threshold identification coupled with decomposition of the cofactor tree is performed until the root node is declared to be threshold, the result is a network of threshold gates that will implement the required function. As depicted in FIG. However, by using the decomposition methodology repeatedly we can obtain the threshold circuit shown in FIG. Any other variation of the same may be developed for particular implementations.
In the implementation discussed here Berkeley-SIS is used to obtain an optimized circuit graph. Each node in the circuit graph represents a complex Boolean function. For each node, the cofactor tree of the node function is constructed. Decomposition based synthesis is performed to obtain a threshold circuit for the function of the node. Once a threshold circuit is obtained for all nodes in the circuit graph, the required multi-output threshold circuit has been generated.
In order to compare the circuit synthesizing results of the present embodiment with typical circuit synthesizing results with other approaches, circuits in the Microelectronics Center of North Carolina MCNC benchmark suite were synthesized using the algorithm described herein. The results are reported in Table 1 below. Gate count and depth are non-technology-specific metrics for area and delay. These are reported herein as they are reported in previously published work R. Zhang, P. Gupta, L. Zhong, and N. Thus, this approach is compared against a modern circuit synthesis method.
Table 1 lists the gate count and level count for the benchmark circuits when implemented as Boolean circuits and as TL circuits by the method described by Zhang et al. Compared to the method described by Zhang et al. This method does not have a restriction on the fanin of gates; however, such a restriction can be imposed if needed. The most important advantage of the presently disclosed method when compared with these two previous approaches is that it gives a combinatorial method and a theoretical underpinning for synthesizing TL circuits as opposed to the heuristic of localized merging of Boolean gates.
The method in M. Avedillo and J. This method is extremely expensive in terms of computation time. It requires more than a minute even for small circuits of only two TL gates. In comparison, the method of the present disclosure takes an average of two seconds to complete execution. Even for circuits that have over six hundred threshold gates it takes no more than six seconds to generate the threshold circuit. To better compare the results, a histogram may be used, as shown in FIG.
The horizontal x-axis of the histogram represents the number of gates in the Boolean circuit. The vertical y-axis of the histogram plots the average number of gates in the threshold circuits generated by the two methods to implement the same benchmarks. For example, consider the circuits that needed to gates in the Boolean implementation. Zhang et al. The improvement in the gate count is greater for larger circuits.
The focus of this particular implementation of the invention was to reduce the gate count and in this regard the proposed method did better than the previous method for almost all circuits. The invention can be used with suitable changes to obtain different circuits that are better suited for improving different circuit parameters like delay, power, etc. This threshold identification process may be used in any suitable application in which threshold function identification is desired.
As a specific example, this threshold function identification process may replace the threshold function identification component of the process described above with respect to FIG. However, the present disclosure is not limited thereto. The threshold function identification process starts by obtaining a Boolean function step Notably, the Boolean function may be any desired Boolean function or a sub-function of another Boolean function e.
Next, the process checks one or more predefined necessary conditions for the Boolean function to be a threshold function step In this embodiment, the one or more necessary conditions include at least the condition that the positive and negative cofactors of the Boolean function are threshold functions. In addition, the one or more necessary conditions may include, but are not limited to, one or more of the following: a condition that a support set of one cofactor contains a support set of the other cofactor, a condition that one cofactor contains the other cofactor i.
Note however that these necessary conditions are exemplary. Other necessary conditions may additionally or alternatively be used. The process determines whether the one or more necessary conditions checked in step are satisfied step If not, the Boolean function is identified as being a non-threshold function step Otherwise, the process determines whether the weights for the positive and negative cofactors of the Boolean function are equal step More specifically, by the time the process has reached step , the process has already determined that the positive and negative cofactors of the Boolean function are threshold functions, which are defined by corresponding weights and threshold values.
In step , the weights defined for the corresponding threshold functions for the positive and negative cofactors are compared to determine whether the weights for the positive cofactor are equal to the weights of the negative cofactor. If so, the Boolean function is identified as a threshold function step If the weights of the positive and negative cofactors of the Boolean function are not equal, the process then tries to equalize the weights of the positive and negative cofactors step Any suitable technique for equalizing the weights of the positive and negative cofactors may be used.
A number of exemplary techniques are discussed below. The process determines whether the weights of the positive and negative cofactors have been successfully equalized step If so, the Boolean function is identified as being a threshold function step Note that these procedures and the pseudo-code for these procedures are exemplary and are not intended to limit the scope of the present disclosure.
Numerous variations are possible and will be apparent to one of skill in the art upon reading this disclosure. Such variations are considered to be within the scope of the present disclosure. Alternatively, the input is a MLFT node. W is a dictionary with the care variables of F as keys and weights of the care variables as values, and T is the threshold of the threshold function. W[x] represents the weight of variable x.
Hence, taking the threshold to be zero will result in the threshold inequality always being satisfied. Hence, setting the threshold to zero will result in the inequality not being satisfied. The first two are simple. Theorem 1 Appendix II states that a necessary condition for F to be threshold is that the support set of either one of the cofactors of F is contained in the support set of the other cofactor. Line 7 checks this condition. The second necessary condition is given in Theorem 2 Appendix II which states that one of the cofactors must be contained in the other cofactor.
Line 8 checks this condition. This is accomplished by the code in lines 9 up to line After computing the weight and threshold of F, [W,T] is cached and returned. The code from line 13 through line 18 accomplishes this. If F is a threshold function, then the variables in S F must be ordered according to the wavy relation. Hence the threshold of F is set to L in line This is performed on line This situation is similar and is shown in lines 18 through If neither is empty, then F is a threshold function and a weight and threshold can be assigned to F.
These computations are shown in line An empty interval means that the weights are not valid. Note that two operations on intervals are used. The intersection of two intervals is an interval representing their overlap. This will be the case if T is less than the minimum possible value of the expression on the left-hand-side LHS , which will be the sum of all negative weights.
This is shown in line 2. The next test on line 4 ensures that the sum of the absolute weights of don't care variables is less than the minimum of the absolute weights of all the care variables Lemma 2, Appendix II. The second test on line 6 ensures that the absolute weight of every care variable is strictly non-zero Lemma 3, Appendix II. Since we are checking for the validity of a given set of weights, the weight of the cofactor variable x of F, denoted by W[x], is already given.
Thus don't care variables affect the weight-threshold assignment. Lemma 2 Appendix II states that the minimum weight of a care variable must be at least one more than the sum of the magnitudes of the weights of the don't care variables. This scaling is done by multiplying each weight and the threshold by a constant.
If they are, then both cofactors now have the same set of weights, and as before, the new weights and threshold of F are calculated and returned. We now describe an alternate data structure, which is referred to as a MLFT. An MLFT is more efficient and accurate for identifying threshold functions. There are several important characteristics of an MLFT that should be noted.
Related Threshold logic: a synthesis approach
Copyright 2019 - All Right Reserved