Kuo-Hua Wang, Chung-Ming Chan, Jung-Chang Liu Dept. of CSIE Fu Jen Catholic University Slide: Chih-Fan Lai Simulation and SAT-Based Boolean Matching for Large Boolean Networks
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Introduction(1/2) Boolean Matching to check if two functions are equivalent under input permutation and input/output phase assignments For example: Let and then x x x Ref: slide of KH Wang, “ Incremental Learning Approach and SAT Model for Boolean Matching with Don't Cares”, 2007
Introduction(2/2) Previous Works Computing Signatures Transforming into Canonical Form This Work Integrating Simulation and Boolean Satisfiability(S&S)
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Background Boolean Matching Equivalence of Function Boolean Satisfiability And-Inverter Graph(AIG) Functional Property Unate Symmetry
Boolean Matching n Given functions f (X) and g (Y), where X = { x 1, x 2,…, x n } and Y = { y 1, y 2,…, y n } n We want to find a feasible mapping P such that f(X) = g(Y), where Y = P(X) n This paper addresses the permutation independent (P-equivalent) Boolean matching problem
Equivalence of Function l NPN-equivalent : equivalent under input Negation, input Permutation, output Negation l NP-equivalent : equivalent under input Negation, input Permutation l P- equivalent : equivalent under input Permutation
Functional Property Consider a function f(X) with n inputs Cofactor of f w.r.t. xi f xi (x 1, x 2, … x i =1, …, x n ) Positive(negative) unate in x i fx i ⊆ fx i (fx i ⊆ fx i ) __
Functional Property(cont’d) Symmetry Non-equivalence symmetry(NE) fx i x j = fx i x j Equivalence symmetry(E) fx i x j = fx i x j Single variable symmetry(SV) fx i x j = fx i x j _ _ _ _ _ _ __ ___ _
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Definitions and Notations P = {X 1, X 2, …, X k } Partition of input set X, where ∪ X i = X and X i ∩ X j is empty for i ≠ j |P| Partition size of P, the number of subsets X i ’s in P
Definitions and Notations(cont’d) Given two input sets X and Y with the same number of input variables, let P X = {X 1, X 2, …, X k } and P Y = {Y 1, Y 2, …, Y k } be two ordered input partitions of X and Y, respectively.
Definition(1/5) Definition 1 A mapping relation R = {G 1,G 2, · · ·,G k } is a set of mappings between the input groups of P X and P Y, where G i = X i Y i and |X i | = |Y i |. Each element G i ∈ R is a mapping group which maps X i to Y i.
Definition(2/5) Definition 2 The mapping relation size is the number of mapping groups in R, denoted as |R|. The mapping group size of Gi, denoted as |G i |, is the group size of X i (or Y i ).
Definition(3/5) Definition 3 G i is unique if and only if |G i | = 1 or X i (Y i ) is a NE- symmetric set of f (g). The mapping relation R is unique if and only if all the mapping groups in R are unique.
Definition(4/5) Definition 4 Let v i be an input vector w.r.t. the input set X. The input weight of v i is the number of inputs with binary value 1. It is denoted as ρ (v i,X) Example: X = x 1 x 2 x 3 x 4 x 5, v i = ρ (v i,X) = 3
Definition(5/5) Definition 5 Consider a function f(X) and a vector set V involving m distinct input vectors. The output weight of f w.r.t. V is the number of vectors v i ’s in V such that f(v i ) = 1. It is denoted as σ (f, V ) and 0 ≤ σ (f, V ) ≤ m Example X1x2x3f( x1, x2, x3) σ (f, V ) = 2
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Simulation Approach(1/6) To quickly remove impossible input corresponding
Simulation Approach(2/6) Type-1 Vector First, generate input vector with weight = 0 or m where m is the target mapping group size, i.e. all 1 or 0 For each input xi in group Gi, generate vector with complementing the value of xi Xi = {x1, x2, x3, x4} x x or1011 x x
Simulation Approach(3/6) Type-2 Vector For each input xi, assign 1(0) to xi and one of the remaining inputs, 0(1) to the other inputs. Output weight will be the signature of the input after simulation. Example x1x2x3x4f Signature of x1 is σ (f, V ) = 2
Simulation Approach(4/6) Type-3 Vector Only be used for the partition with several NE-symmetric sets. Suppose Xi consists e symmetric set S 1, S 2, …, S e, each with k inputs Generate two random vectors with different weight says a 1 and a 2 Assign a 1 to Si and a 2 to the other sets for each sets Partition by different output value
Simulation Approach(5/6) Type-3 Vector(cont’d) Example X have 3 NE-symmetric sets {x1,x2}, {x3,x5}, {x6,x7} Y have 3 NE-symmetric sets {y2,y3}, {x4,x5}, {x6,x7} a 1 = 11, a 2 = 01, x1x2x1x2x3x5x3x5x6x7x4x8output y2y3y4y5y6y7y1y8f v v v
Simulation Approach(6/6) For each group A ∈ P Xi, there is a corresponding group B ∈ P Yi, if |P Xi | ≠ |P Yi | |A| ≠ |B| f(X) and g(Y) can not match to each other
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Discussion(1/2) Matching Algorithm Initialization Functional property Simulation Recursion
Discussion(2/2) Some Implementation Issues Vector Generation Reduction of Simulation Time
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Outline Introduction Background Definitions & Notations Simulation Approach Discussion Experimental Results Conclusions
Proposed a S&S-based Boolean matching algorithm Three types of input vectors for simulation Had been tested on a set of large benchmark and is effective and efficient