1 / 20

ECE 667 Synthesis and Verification of Digital Systems

ECE 667 Synthesis and Verification of Digital Systems. Functional Decomposition. Slides adopted (with permission) from A. Mishchenko, 2003. Overview. The concept of functional decomposition Two uses of BDDs for decomposition as a computation engine to implement algorithms

abranham
Download Presentation

ECE 667 Synthesis and Verification of Digital Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 667Synthesis and Verificationof Digital Systems Functional Decomposition Slides adopted (with permission) from A. Mishchenko, 2003

  2. Overview • The concept of functional decomposition • Two uses of BDDs for decomposition • as a computation engine to implement algorithms • as a representation that helps finding decompositions • Two ways to direct decomposition using BDDs • bound set on top (Lai/Pedram/Vardhula, DAC’93) • free set on top (Stanion/Sechen, DAC’95) • other approaches • Disjoint and non-disjoint decomposition • Applications of functional decomposition: • Multi-level FPGA synthesis • Finite state machine design • Machine learning and data mining ECE 667 - Functional Decomposition

  3. Functional Decomposition – previous work • Ashenhurst [1959], Curtis [1962] • Tabular method based on cut: bound/free variables • BDD implementation: • Lai et al. [1993, 1996], Chang et al. [1996] • Stanion et al. [1995] • Roth, Karp [1962] • Similar to Ashenhurst, but using cubes, covers • Also used by SIS • Factorization based • SIS, algebraic factorization using cube notation • Bertacco et al. [1997], BDD-based recursive bidecomp. ECE 667 - Functional Decomposition

  4. G F B F H A Two-LevelCurtis Decomposition F(X) = H( G(B), A ), X = B A B = bound set A= free set X if B A = , this is disjoint decomposition if B A  , this is non-disjoint decomposition ECE 667 - Functional Decomposition

  5. B G F H B G A Simple disjoint decomposition (Asenhurst) H F A B G H F A Decomposition Types Disjoint decomposition (Curtis) Non-disjoint decomposition ECE 667 - Functional Decomposition

  6. Incompatibility Graph 1 G G 2 00 01 11 10  =2 G 4 00 1 1 1 1 G 3 01 1 0 1 0 1 2 3 4 11 0 1 0 1 10 0 0 0 0 Decomposition Chart Bound Set = {a,b} Free Set = {c,d} Definition 1: Column Compatibility Two columns i and j are compatible if each element in i is equal to the corresponding element in j or the element in either i or j is not specified Definition 2: Column Multiplicity=the number of compatible sets (distinct column patterns) ECE 667 - Functional Decomposition

  7. k B G F H A Fundamental Decomposition Theorems • Theorem (Asenhurst) Let m be the minimum number of compatible sets in the decomposition chart. Then function H must distinguish at least m values • Theorem (Curtis) Let (A | B) denote column multiplicity under decomposition into bound set B and free set A. Then: (A | B)  2k F(B,A) = H(G1(B), G2(B), …, Gk(B), A) ECE 667 - Functional Decomposition

  8. Bound Set= {a,b} Free Set= {c,d} 00 01 11 10 a G 00 1 1 1 1 b F H 01 1 0 1 0 c 1 2 3 4 d 11 0 1 0 1 10 0 0 0 0 Asenhurst-Curtis Decomposition Here = 2, so function H must distinguish two values • need 1 bit to encode inputs from G F(a,b,c,d) = (ab+ ab)c'+ (ab+ ab)(cd+cd) G(a,b)= ab+ab H(G,c,d) = Gc+ G(cd+cd) ECE 667 - Functional Decomposition

  9. Multi-Level Curtis Decomposition • Two-level decomposition is iteratively applied to new functions Hiand Gi, until smaller functions Gt and Ht are created, that are not further decomposable. • One of the possible cost functions is Decomposed Function Cardinality (DFC). It is the total cost of all blocks, where the cost of a binary block with n inputs and moutputs is m * 2n. ECE 667 - Functional Decomposition

  10. Typical Decomposition Algorithm • Find a set of partitions(Bi, Ai) of input variables X into bound set variables Bi and free set variables Ai • For each partition, find decompositionF(X) = Hi (Gi(Bi ), Ai ) such that the column multiplicity is minimal, and compute DFC • Repeat the process for all partitions until the decomposition with minimum DFC is found. ECE 667 - Functional Decomposition

  11. Uses of BDDs for Decomposition • Whatever is the decomposition algorithm, BDDs can be used to store data and perform computation (using cubes, partitions, etc.) • Alternatively, the algorithm may exploit the BDD structure of the function F to direct the decomposition in the bound set selection, column multiplicity computation, and deriving the decomposed functions G and H ECE 667 - Functional Decomposition

  12. BDD-Based Decomposition • Bound set on top (Lai/Pedram/Vardhula, DAC’93) • Free set on top (Stanion/Sechen, DAC’95) • Bi-decomposition using 1-, 0-, and EXOR-dominators (Yang/Ciesielski, ICDD’99) • Recursive decomposition (Bertacco/Damiani,ICCAD’97) • Implicit decomposition (Wurth/Eckl/Legl,DAC’95) ECE 667 - Functional Decomposition

  13. “Bound Set on Top” Algorithm • Reorder variables in BDD for F and check column multiplicity for each bound set • For the bound set with the smallest column multiplicity • Perform decomposition : • Encode the cut nodes with minimum number of bits (log ) • derive functions G and H (both depend on encoding) • Iteratively repeat the process for functions G and H (typically, only H) • This algorithm can be modified to work for non-disjoint decompositions but does not work with DCs ECE 667 - Functional Decomposition

  14. Bound Set Free Set B=10 C=01 A=00 C A A B B C B A = 0 = 1 Bound Set on Top - function G 0 1 G={g0, g1}, A=g0g1, B=g0g1, C=g0g1 g0=abc+abc+abc, g1= abc+ abc ECE 667 - Functional Decomposition

  15. F Bound Set Free Set B=10 C=01 A=00 C A A B B C B A = 0 = 1 Bound Set on Top - function H 0 1 F(a,b,c,d,e) = H( g0(a,b,c), g1(a,b,c), d, e ) H= Ae+Bd+Ce= g0g1e+g0g1d+g0g1e ECE 667 - Functional Decomposition

  16. “Free Set on Top” Algorithm • Find good variable order • Derive implicit representation of all feasible cuts on the BDD representing F • Use some cost function to find the best bound set and perform decomposition • Repeat the process for functions G and H • This algorithms is faster than “bound set on top” but it does not work for non-disjoint decompositions and incompletely specified functins (with DCs). ECE 667 - Functional Decomposition

  17. F Free Set g0 g1 Bound Set B=10 A=00 C=01 0 1 = 0 = 1 Free Set on Top - function G c d e A = g0 B = g1 ABAB G={g0, g1}, g0 = cde+cd = de + cd, g1= d+e ECE 667 - Functional Decomposition

  18. = 0 = 1 Free Set on Top - function H F Free Set c d e Bound Set g0 A = g0 g1 Bound Set B = g1 B=10 A=00 C=01 0 1 ABAB F(a,b,c,d,e) = H( a, b, g0(c,d,e),g1(c,d,e) ) H=(ab+ ab)g0+ (ab+ ab)g1 ECE 667 - Functional Decomposition

  19. Non-Disjoint Decomposition • Non-disjoint decomposition can be reduced to disjoint decomposition by adding variables • Bound Set = {a,b,c}, Free Set = {c,d} Disjoint decomposition can be generated by introducing variables c1=c2=c instead of c • In terms of the Karnaugh map, it is equivalent to introducing two variables instead of one in such a way that c1c2+c1c2is a don’t care set. Why:c1  c2c1c2+c1c2 i.e.,c1c2+c1c2cannot happen ECE 667 - Functional Decomposition

  20. Non-Disjoint Decomposition Example A C B B A A B A A B B B There is no disjoint decomposition with any bound set; there is non-disjoint decomposition with bound set {a,b,c} ECE 667 - Functional Decomposition

More Related