200 likes | 305 Views
Multi-Valued Logic Network Optimizations. EE219B Project Presentation Jason Shamberger May 16, 2000. Outline. Input Variable Pairing results Input Variable Encoding results Conclusions. Input Variable Pairing. By pairing input variables, we can make the cover smaller Example:.
E N D
Multi-Valued Logic Network Optimizations EE219B Project Presentation Jason Shamberger May 16, 2000
Outline • Input Variable Pairing • results • Input Variable Encoding • results • Conclusions
Input Variable Pairing • By pairing input variables, we can make the cover smaller • Example:
Input Variable Pairing • Trade-off: pairing variables increases input width • If input variables have m, n values, pairing them increases the width from m+n to m*n • For some applications we wish to limit the total input width to 32 bits
Input Variable Pairing • Simple Heuristic: • Count the original number of cubes • Eliminate the variables to pair • Count the new number of cubes • The difference gives an approximation of the savings • The real savings could be more than this, since further simplifications could be made by calling Espresso
Input Variable Pairing Results • Number of cubes:
Input Variable Pairing Results • Possible explanations? • Heuristic is not good enough, can try calling espresso on each node, each pair of variables to get an accurate count of savings • Another problem: demux nodes
Input Variable Pairing We pair variables by inserting demux nodes
Input Variable Pairing • The new node we insert must have at least one cube for each value of the MV variable we generate • Solutions: • Set the threshold equal to the number of cubes in demux node • Result: no pairing
Input Encoding • The opposite of variable pairing: Take one MV input and encode it with smaller variables • Choosing the encoding affects the size of the cover (see class notes)
Input Encoding • Implementation: • Find which variables to encode • Generate the constraints • Generate the dichotomies • Generate the prime dichotomies • Find the minimum column cover • Translate this into an encoding scheme
Input Encoding Results • The optimal method is not fully implemented • Currently generate dichotomies, then find a cover which satisfies all of them • Encounter the same problem with insertion of new nodes for muxing • Insert one node for each variable to encode with • Each node has one cube for each value of the encoding variable
Input Encoding Results In all test cases, input size at each node decreased or remained the same
Conclusions • Original thought: alternately applying variable pairing and input encoding could lead to a small cube cover and small input width (similar to extraction and elimination) • This does not work, just end up inserting more and more nodes into the network
Conclusions • For better results look at the network level • Instead of pairing variables, pair nodes (combine two sibling nodes into one) • Will increase the input width of the paired nodes, so make sure two nodes share common inputs AND outputs
Conclusions • Instead of encoding the inputs, encode at the outputs of previous nodes • Requires multiple outputs from a single node
References • Class Notes • “Satisfaction of Input and Output Encoding Constraints”, Saldanha, Villa, Brayton, Sangiovanni-Vincentelli • “Multiple-Valued Logic and Optimization of Programmable Logic Arrays”, Sasao • “On the Optimal Design of Multiple-Valued PLA’s”, Sasao