Date post: | 22-Dec-2015 |
Category: |
Documents |
View: | 214 times |
Download: | 1 times |
MVSIS Front End
219b Project PresentationSpring 2000
Minxi Gao, EECS, UC Berkeley
Outline
Motivation
Experiment results
Implementation
Theory
Problem definition
Motivation
MVSIS Front End
– multi level minimization• decomposition, substitution, collapsing, elimination, factorization – was not done
– 2 level minimization:• espresso-mv, node don’t care minimization – was done
– visualization of network-node information• node factored form, value, kernels… - need first to finish
multi-level minimization – was not done
Problem definition How to factor a multi-valued logic
function?
How to divide a multi-valued logic function given a divisor?
))(( }2,1,0{}0{}3{}3,2,1{}3,1{}2,1,0{
}2,1,0{}3,2,1{}0{}3{}3,2,1{}1{}0{}3{}2,1,0{
cacbca
cbacbcaca
Example:
Theory
Satisfiability-matrix based kernel searching (factorization)– Can do both kernel searching (factorization)
and division
Direct method for multi-valued division– Only applies to division – Similar to the weak-division in the binary
setting
Satisfiability-matrix
Given a matrix M and its entries– Value condition
• Value val of a variable var satisfies the value condition if it appears in all combinations of the rows and columns that it appears in M
– Satisfiability• M is satisfiable if all values of all variables
of the entries in M satisfy the value condition
An example
1 21 2 3 3
1 1 X1{0,1}X2
{1,2}
22 X1{1}X2
{1,4} X1{0,1}X2
{4}
– All values of X1 satisfy the value condition. Value 4 of X2 satisfies the value condition
X1{0,1}X2
{2,3}
X1{1}X2
{1,3} X1
{0,1}X2{2,3}
Obtain factorization
, ,
, ,
( )( ) ( )( )
( )( )
ij r i c j r cij ij
ij r i c j
M e e e e
M e e
Then if M is satisfiable ,
Place as many cubes of F as possible in M so that M is satisfiable:
– F= (er)(ec) + R– R is the remainder and contains the cubes
that will make M not satisfiable if put in M
er,i=supercube(all cubes in row i) ec,j=supercube(all cubes in column j)
– supercube({ci}): smallest cube containing all ci
Techniques
Pre-select number of rows Fill M in column order, check satisfiability at
position
Branch and bound search Exponential but good heuristics have
been used to speed up the search
An example
1 21 2
11
22 b{1,2,3} c{3}
a{0}b{1,2,3}
c{0}
F = a{0,1,2}c{3} + b{1,2,3} c{3} + a{0}b{1,2,3} c{0} +a{0}c{1}
= a{0,1,2} b{0,1,2,3}c{3} + b{1,2,3} c{3}
+ a{0}b{1,2,3} c{0} +a{0} b{0,1,2,3}c{1}
a{0,1,2} b{0,1,2,3}c{3}
a{0} b{0,1,2,3} c{1}
An example
a{0,1,2} b{0,1,2,3}c{3} a{0} b{0,1,2,3}
c{1}
b{1,2,3} c{3} a{0}b{1,2,3}
c{0}
F = a{0,1,2} c{3} + b{1,2,3} c{3} + a{0}b{1,2,3} c{0} +a{0} c{1}
= (c{3} +a{0}c{0,1})(a{0,1,2} c{1,3} +b{1,2,3}
c{0,3})
c{3} a{0}c{0,1}
a{0,1,2} c{1,3}
b{1,2,3} c{0,3}
Direct method for exact division
• Similar to WEAK_DIV in SIS • Given:
– F =a{0,1,2}c{3}+b{1,2,3} c{3} +a{0}c{1}+ a{0}b{1,2,3} c{0}
– d =c{3}+a{0}c{0,1,2}
• Candidate cubes: contained in divisor cube– c{3}: – a{0}c{0,1,2}:
a{0,1,2}c{3}
, a{0}c{1}, a{0}b{1,2,3}
c{0}
b{1,2,3} c{3}
Direct method for exact division
Candidate quotient cubes:– c{3}: a{0,1,2}c S1, b{1,2,3} c S2
– a{0}c{0,1,2}: a S3c S4, a S5b{1,2,3} c S6
– {3}S1{0,1,2,3}, {3}S2{0,1,2,3}, {0}S3 {0,1,2,3}, {1} S4 {1,3}, {0} S5{0,1,2,3}, {0}S6 {0,3}
Take quotient cubes in common (compatible)– c{3}: – a{0}c{0,1,2}:
Result:– F =(c{3} +a{0}c{0,1,2})(a{0,1,2} c{1,3} +b{1,2,3} c{0,3})
a{0,1,2}c{1,3}, a{0,1,2}c{1,3},
b{1,2,3} c{0,3}
b{1,2,3} c{0,3}
Direct method for exact division
Run time for direct method:– 2-cube divisor:
• Can be reduced to maximum matching problem: maximum number of edges in a graph none of which share a vertex
• n3, have been implemented, result show it is fast
– >2-cube divisor• can be reduced to covering problem• Have not been implemented yet.
Implementation MV-SIS multi-level minimization
packages related to algebraic factorization and division– kernel extraction– factorization– decomposition– collapsing– substitution– elimination
Implementation
Kernelling and factorization– Satisfiability-matrix based method
Substitution– Direct method
Collapsing Elimination
– Compute the value of a node: number of cubes before and after elimination
– Collapse if value is less than thresh hold given by the user
Decomposition Best-kernel based method
– Divide these kernels into all other nodes to compute their value
– Choose the best one, extract it into a new node
– Find all 2-cube kernels in all nodes by making each pair of cubes cube-free
– Divide the new node into all other nodes
Visualization commands mv_print n1
– print SOP form of the function at node n1, print the whole network if n1 not specified
mv_print_io n1– print fanins and fanouts of n1. Print PI and PO if n1
not specified mv_print_factor n1
– print factored form of n1. print the whole network if n1 not specified
mv_print_value n1– print the value of n1, print the whole network if n1
not specified
Experimental results Multi-valued PLA examples:
– All 2-cube kernel method decomposition
PLA Run time/sec Num cubes saved
C1908_40_20.club 2 613->523, 15%
Apex6_40_25.club 1.8 505->429, 15%
Frg2_60_25.club 6 699->507, 27%
Pair_40_15.club 10 1418->1279, 10%
Toolarge_25_20.club 0.35 403->312, 23%
Experimental results• Hand-made examples
• Test examples from last year’s project and an adder_mod4 example
• All 2-cube kernel method decomposition
Example methodNum cubes
saved
test3Eliminate 0->dcomp-
>eliminate 0286->107,
63%
test3 Collapse->decomp 488->71, 85%
test2 Eliminate 0->decomp 73->42, 42%
Adder_mod4 Decomp 32->24, 25%
Adder_mod5 Decomp 40->34, 15%
Experimental results Machine_learning examples:
– All 2-cube kernel method decomposition
Name Num cubes saved
balance.mv 153->121, 21%
car.mv 58->45, 22%
employ2.mv 60->33, 45%
nursery.mv 144->53, 63%
pal3.mv 36->18, 50%
Conclusion
Multi-level minimization in MVSIS is efficient and fast
We have built a SIS version with MV layer with a menu of optimization commands