1 / 23

Grouping Heuristics for Word-Level Decision Diagrams

Grouping Heuristics for Word-Level Decision Diagrams. Rolf Drechsler Marc Herbstritt Bernd Becker Institute of Computer Science University of Freiburg 79110 Freiburg, Germany. Outline. Introduction Word-Level Decision Diagrams (WLDDs) Variable Grouping Topology-based Heuristic

reedr
Download Presentation

Grouping Heuristics for Word-Level Decision Diagrams

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. Grouping Heuristics forWord-Level Decision Diagrams Rolf Drechsler Marc Herbstritt Bernd Becker Institute of Computer Science University of Freiburg 79110 Freiburg, Germany

  2. Outline • Introduction • Word-Level Decision Diagrams (WLDDs) • Variable Grouping • Topology-based Heuristic • Experimental results • Conclusions

  3. Motivation • Formalverification is important task • Very popular: Binary Decision Diagrams (BDDs) • Bryant 1986 • Represent functions (bit-level) • Many extensions: FDDs, KFDDs, ... • But: not applicable to some important functions, i.e. arithmetic functions like multipliers • Introduction of Word-Level Decision Diagrams • possible to verify large mutlipliers

  4. Word-Level Decision Diagrams(WLDDs) • Represent functions • Directed acyclic graphs • Variables are encountered in same order • Canonical representation • Graph size depends on • variable ordering • decomposition type choice • grouping(in the case of multi-output circuits)

  5. WLDD types • EVBDDs: • Lay and Sastry 1992 • additive weights, Shannon decomposition • MTBDDs: • Clarke et. al 1993 • Integer leaf values, Shannon decomposition • *BMDs: • Bryant and Chen 1994 • multiplicative weights, pos. Davio decomposition • K*BMDs: • Drechsler et al. 1996 • additive and multiplicative weights, Shannon/pos. Davio/neg. Davio decomposition

  6. Decomposition Types • Bit-Level: • Word-Level: Shannon: pos. Davio: neg. Davio:

  7. Example WLDD EVBDD MTBDD

  8. Example WLDD *BMD MTBDD EVBDD

  9. Variable Grouping 3 possibilities: • Consider only single primary outputs • Group all outputs by using a weighted sum • Divide the set of outputs in more than one set and group the individual sets by a weighted sum • reduction or blowup is obtained

  10. Example Multiplier function as *BMD (Bryant 1995) • bit-wise representation: • exponential size • grouped outputs: • linear size

  11. Example Consider MTBDDs for functions • bit-wise representation: • linear size • weighted sum representation • exponential size

  12. Topology-based Heuristic Main idea: Group the outputs together that depend on the same variables • Starting with the largest output largest output: the output with the largest support w.r.t. the primary inputs • Group all outputs together that depend on the same variables (or on a subset) until no further grouping is possible • Consider the next largest output until no output left

  13. Step by step • Initialization • Evaluation of Support Matrix • Variable Grouping • Heuristic H1 • Heuristic H2 Notation: • Netlist: G • Number of primary inputs: #PI • Number of primary outputs: #PO

  14. Initialization Evaluation of Support Matrix Variable Grouping Assign array of length #PIto each gate in the netlist G Compute the support by traversing the netlist in topological order. I.e. the support for the primary outputs is computed Runtime: Initialization

  15. Compute the Output Correspondence Matrix (OCM) Matrix dimensions: Matrix is symmetric 1. Step: setting all entries to 0 Runtime: 2. Step: Compute which outputs are defined over the same support Runtime: Overall runtime: Initialization Evaluation of Support Matrix Variable Grouping Evaluation of Support Matrix

  16. for( i = 0; i < #PO; i++ ) for( j = 0; j < #PO; j++ ) for( l = 0; l < #PI; l++ ) if( i-th and j-th primary output is dependent on input l ) OCM[i][j] = OCM[i][j]+1; OCM Computation • Initialization • Evaluation of Support Matrix • Variable Grouping

  17. Heuristic H1: Include an output variable, if its support is contained in the largest one of the actual group Variable Grouping Group the output variables dependent on the OCM • Heuristic H2: Include an output variable, if its support is contained in the support of all output variables that are in the actual group • Initialization • Evaluation of Support Matrix • Variable Grouping

  18. Runtime Analysis • Initialization: • Evaluation of Support Matrix: • Overall runtime:

  19. H1 results in onegroup: (PO1, PO2, PO3) Example • H2 results in two groups: (PO1, PO2), (PO3) • Initialization • Evaluation of Support Matrix • Variable Grouping

  20. Experimental Results (1) • Grouping results • H1 is word-oriented • H2 is bit-oriented

  21. Experimental Results (2) • Variable ordering: Interleaving • H1 should be applied in Davio dominated WLDDs • H2 should be used for Shannon-based WLDDs (Table entries denote number of nodes of the resulting WLDD)

  22. Experimental Results (3)

  23. Conclusions • We presented heuristics for output grouping for Word-Level Decision Diagrams • Due to this grouping large reductions are possible (up to an exponential factor) • Grouping is dependent on the decomposition type choice • Current and future work: • Incorporate output grouping in variable ordering and decomposition type choice process • Consideration of mixed DTLs for each group

More Related