Factoring Logic Functions Using Graph Partitioning Aviad Mintz Martin C. Golumbic University of Haifa
Outline of Talk Introduction Proposed Method Read Once Functions Clusters and Cluster Intersection Graph Separability function and partition algorithms Form Conversions - P2SS2P Factoring Algorithm - Xfactor Results Analysis of Xfactor’s parameters Best Combination Group versus Best Average List Run Time Summary
Introduction Factoring Boolean Functions: Deriving a minimal factored form from a sum of products representation . ( ) F ab ac d a b c d Example. Complexity: NP - Hard. Known Algorithms: Algebraic methods (QF and GF), Boolean methods. All algorithms work with a kind of division.
Proposed Method Use Graph Partitioning rather than division. Exploiting locality of the literals. Identify Read Once Functions and factor them separately. Fast to factor, and frequently appears in lower levels of logic.
Read Once Functions Definition: Read Once Function - A function that has a factored form in which each variable appears exactly once. Example: ( ( )) F a b a c d a c g a b c d g Remarks: Read Once functions are subset of Unate Functions. Read Once Functions frequently appear at lower levels of Logic Design (PP 95). The complexity of identifying and factoring Read Once functions has almost linear complexity (in the input size).
Clusters Definition: A Cluster is the set of literals in a prime implicant of an SOP representation or prime explicant in a POS representation. Example: F abd abg acd cg Clusters of F: , , , , , , , a b d a b g a c d c g
Cluster Intersection Graph Definition: G(C,E) an undirected weighted graph where: C - clusters of the function , E i j Ci Cj - the number of common literals W ( , ) i j F abd abg acd cg Example: 2 {a,b,d} {a,b,g} 1 1 2 1 {c,g} {a,c,d}
Separability Function Measure separability of the cluster intersection graph by a graph partitioning algorithm. Try to partition the graph evenly (to minimize the number of stages). Choose the minimal separabilty and return its value A , B and partitions ( - sets of vertices).
Form Conversions – P2S and S2P Functions P2S - convert sum of product to product of sums S2P - convert product of sums to sum of products P2SS2P – a shortcut for both
Factoring Algorithm Using Graph Partitioning - Xfactor Input: Parse tree T of the Boolean function being factored. Xfactor(T). If T is a Read Once function - Construct the Read Once tree and exit. Otherwise, Construct the Cluster Intersection Graph G corresponding to T and Calculate the Separability. If the Separability of G is not 0 - Build T* by P2SS2P, Construct the Cluster Intersection Graph G* and Calculate the Separability. If the Separability of G is lower than the Separabilty of G* - Partition T accordingly and Call Xfactor with each part. Otherwise, Partition T* and Call Xfactor with each part.
Factoring Algorithm - Example F abd abg acd cg 2 {a,b,d} {a,b,g} G(C,E): 1 1 2 1 {c,g} {a,c,d}
Factoring Algorithm - Example ( Cont . 1) * ( )( )( )( ) F a c a g b c d g 1 {a,g} {a,c} G*(C*,E*): 1 1 {b,c} {d,g} Xfactor chooses the second option and partitions G* evenly. ( )( ) F a g d g 1 ( )( ) F a c b c 2
Factoring Algorithm - Example ( Cont . 2) F1 and F2 are Read Once functions. ( )( ) F a g d g ad g 1 ( )( ) F a c b c ab c 2 Thus. ( )( ) F ad g ab c Algebraic factoring (GF) produces worse result: ( ( ( ) ) F a b d g cd cg Boolean factoring produces same result as. Xfactor.
Results #1 Factoring Results 1 30 25 20 QF Literals GF 15 BF XF 10 5 0 Ofactor Pfactor Qfactor Rfactor Sfactor Tfactor Boolean Functions
Results #2 Factoring Results2 400 350 300 250 QF Literals GF 200 BF XF 150 100 50 0 5xp1 f51m misex1 rd53 sao2 vg2 z4ml Boolean Functions
GF XF 0 s _ 0 1 r _ 1 term 0 0 r d _ _ term 8 0 b sct _ 0 pcler a _ z pcle _ pcle y _ pcle pcle mux 0 majority n d _ _ 2 1 i a m _ 85 frg a l _ t 85 a cm _ a s 85 Factoring Results3 cm _ a r Boolean Functions 163 cm _ a q 163 cm _ a r 163 cm _ a q 163 cm _ a p 162 cm _ a o 162 cm _ a 162 cm a 162 cm 150 cm 0 t cm _ 0 8 s c _ 0 8 r c _ 0 8 z c _ 1 9 i _ b 1 9 Results #3 d b _ 1 9 a b v _ _ 9 4 b p _ 4 o alu _ 4 o alu _ 2 alu l _ 2 k alu _ 2 alu alu symml 9 400 350 300 250 200 150 100 50 0 Literals
Results - Summary Total # of Literals Algorithm QF 3630 GF 3408 XF 2586
Xfactor’s Parameters Parameter Description Option CI Graph’s Type C (1) VCI, (0) LCI W Weight Balancing (1) Use or (0) no use of weight balancing P Partition Cut Value (1) Use or (0) no use of modified cut size F FM Refinement (1) Use or (0) no use of FM I Initial Search Vertex (0) arbitrary, (1) min., (2) max., (3) random L LSP Stopping (1) 50% of vertices, (0) completing the 50% level M IBM90 Merge Function (1)maximum, (0) addition
Parameters of Cluster Intersection Graph Type of cluster intersection graph (C parameter): variable (VCI) or literal (LCI) C ab C a b Example: i j No edge in LCI, edge in VCI Edges weight (W parameter): number of common literals or balance function result 2 /(| || |) z w C C ( , ) ( , ) C C C C i j Balance function: i j i j C a b c C abdh Example: i j 1/3 * 1/4 1/12 z LCI graph : ( , ) C C i j 2/3 * 2/4 1/3 z VCI graph : ( , ) C C i j
Separability Function Parameters Separability value (P parameter): Regular cut size. ( , ) { ( ) | , } A B w u A v B Or. ( , ) u v Modified cut size. ( , ) * (| | | |) /( 4 * | | * | |) A B A B A B
Partition Algorithms Use of 4 different partition algorithms Level structure partitioning (LSP) Greedy graph growing partitioning (GGGP) Max grow partitioning (MGP) Ibm90 Refinement algorithm (F parameter ): Use or no use of the Fiduccia-Mattheyses refinement algorithm
Partition Algorithm 1 – Level Structure Partitioning (LSP) General structure Choose a starting vertex v Partition the graph vertices into levels by using breadth first search (BFS) LSP stopping parameter (L parameter): Stop the BFS after covering 50 % of the graph’s vertices or Stop the BFS after completing the remainder of the level k where the 50% vertex occurs Initialize parameter (I parameter): Possible values: an arbitrary vertex 0, a minimum connected vertex, a maximum connected vertex and a random vertex
Partition Algorithm 2 – Greedy Graph Growing Partitioning (GGGP) General structure -. Divide the graph’s nodes to two sets, the growing region and the other region . Nodes move only from the other region to the growing region until there are no nodes in the other region . The order of the movement is greedy; The next node that will be moved is the one that will reduce the connectivity between the regions by the maximum amount. First node moving to the growing region is selected by the I parameter .
Partition Algorithm 3 – Max Grow Partitioning (MGP) General structure -. Divide the graph’s nodes to two sets, the growing region and the other region . Nodes move only from the other region to the growing region until there are no nodes in the other region . The order of the movement is by the heaviest edge, the node connected to the heaviest edge in the cut, will be moved to the growing region. First node moving to the growing region is selected by the I parameter.
Partition Algorithm 4 – IBM90 General structure. At each step the algorithm chooses two vertices u and v which are connected by the heaviest edge (e = (u,v)) and merges them to one new vertex (uv). During the merge, the edge e=(u,v) connecting the two vertices is eliminated and each pair of edges ((u.X),(v,x)) connecting these two vertices to another vertex x are merged. This process stops when there are exist two vertices and one edge which represents the bipartition of the whole graph. Weight of the merged edge (M parameter): Sum of its originals or max of its originals. ( , ) w Max w w w w w ( , ) ( , ) ( , ) uv x u x v x ( , ) ( , ) ( , ) uv x u x v x
Analysis of Xfactor’s Parameters Parameter Preferred Value Condition C Literal Type Graph (LCI) Always Balanced Edge’s Wight Most of the Time W P Modified Cut Size Always F Using Refinement Most of the Time I None No Clear Answer L None No Clear Answer M Maximum Value Always
Recommend
More recommend