260 likes | 303 Views
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
E N D
Grouping Heuristics forWord-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 • Experimental results • Conclusions
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
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)
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
Decomposition Types • Bit-Level: • Word-Level: Shannon: pos. Davio: neg. Davio:
Example WLDD EVBDD MTBDD
Example WLDD *BMD MTBDD EVBDD
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
Example Multiplier function as *BMD (Bryant 1995) • bit-wise representation: • exponential size • grouped outputs: • linear size
Example Consider MTBDDs for functions • bit-wise representation: • linear size • weighted sum representation • exponential size
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
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
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
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
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
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
Runtime Analysis • Initialization: • Evaluation of Support Matrix: • Overall runtime:
H1 results in onegroup: (PO1, PO2, PO3) Example • H2 results in two groups: (PO1, PO2), (PO3) • Initialization • Evaluation of Support Matrix • Variable Grouping
Experimental Results (1) • Grouping results • H1 is word-oriented • H2 is bit-oriented
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)
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