Title: Multi-Valued Logic Network Optimizations
1Multi-Valued Logic Network Optimizations
- EE219B Project Presentation
- Jason Shamberger
- May 16, 2000
2Outline
- Input Variable Pairing
- results
- Input Variable Encoding
- results
- Conclusions
3Input Variable Pairing
- By pairing input variables, we can make the cover
smaller - Example
4Input Variable Pairing
- Trade-off pairing variables increases input
width - If input variables have m, n values, pairing them
increases the width from mn to mn - For some applications we wish to limit the total
input width to 32 bits
5Input 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
6Input Variable Pairing Results
Original network mv_simp var_pair var_pair mv_simp
test1 416 375 467 422
test2 785 740 930 871
test3 1617 1497 1965 1818
test4 13768 12681 15789 13297
test5 24715 22058 28821 26275
7Input 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
8Input Variable Pairing
We pair variables by inserting demux nodes
9Input Variable Pairing Results
Original network mv_simp var_pair var_pair var_pair mv_simp var_pair mv_simp
All nodes All nodes All nodes Excluding demux nodes All nodes Excluding demux nodes
test1 416 375 467 409 422 364
test2 785 740 930 772 871 713
test3 1617 1497 1965 1573 1818 1426
test4 13768 12681 15789 13297 13297 11870
test5 24715 22058 28821 23255 26275 19992
10Input 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
11Input 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)
12Input 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
13Input 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
14Input Encoding Results
Original network mv_simp input_encode input_encode input_encode mv_simp input_encode mv_simp
All nodes All nodes All nodes Excluding mux nodes All nodes Excluding mux nodes
test1 416 375 793 393 481 375
test2 785 740 1371 759 896 740
test3 1617 1497 3201 1541 1919 1497
test4 13768 12681 29200 12876 17162 12428
In all test cases, input size at each node
decreased or remained the same
15Conclusions
- 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
16Conclusions
17Conclusions
- 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
18Conclusions
19Conclusions
- Instead of encoding the inputs, encode at the
outputs of previous nodes - Requires multiple outputs from a single node
20References
- 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 PLAs,
Sasao