Faster Logic Manipulation for Large Designs Alan Mishchenko Robert Brayton University of California, Berkeley.

Slides:



Advertisements
Similar presentations
FRAIGs - A Unifying Representation for Logic Synthesis and Verification - Alan Mishchenko, Satrajit Chatterjee, Roland Jiang, Robert Brayton ERL Technical.
Advertisements

Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Class Presentation on Binary Moment Diagrams by Krishna Chillara Base Paper: “Verification of Arithmetic Circuits using Binary Moment Diagrams” by.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Technology Mapping.
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Boolean Functions and their Representations
EE290A 1 Retiming of AND- INVERTER graphs with latches Juliet Holwill 290A Project 10 May 2005.
Reachability Analysis using AIGs (instead of BDDs?) 290N: The Unknown Component Problem Lecture 23.
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
DAG-Aware AIG Rewriting Alan Mishchenko, Satrajit Chatterjee, Robert Brayton Department of EECS, University of California Berkeley Presented by Rozana.
Boolean Matching in Logic Synthesis. Equivalence of Functions Equivalence of two functions defined under l Negation of input variables l Permutation of.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
Logic Synthesis Primer
Fast Spectral Transforms and Logic Synthesis DoRon Motter August 2, 2001.
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Wenlong Yang Lingli Wang State Key Lab of ASIC and System Fudan University, Shanghai, China Alan Mishchenko Department of EECS University of California,
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
05/04/06 1 Integrating Logic Synthesis, Tech mapping and Retiming Presented by Atchuthan Perinkulam Based on the above paper by A. Mishchenko et al, UCAL.
Two Level and Multi level Minimization
BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering.
Combinational and Sequential Mapping with Priority Cuts Alan Mishchenko Sungmin Cho Satrajit Chatterjee Robert Brayton UC Berkeley.
Enumeration of Irredundant Circuit Structures Alan Mishchenko Department of EECS UC Berkeley UC Berkeley.
1 Stephen Jang Kevin Chung Xilinx Inc. Alan Mishchenko Robert Brayton UC Berkeley Power Optimization Toolbox for Logic Synthesis and Mapping.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Wenlong Yang Lingli Wang State Key Lab of ASIC and System Fudan University, Shanghai, China Alan Mishchenko Department of EECS University of California,
A Semi-Canonical Form for Sequential Circuits Alan Mishchenko Niklas Een Robert Brayton UC Berkeley Michael Case Pankaj Chauhan Nikhil Sharma Calypto Design.
Presented By Anna Fariha Roll : SN – 213 MS, 1 st Semester Session: Boolean Matching.
Global Delay Optimization using Structural Choices Alan Mishchenko Robert Brayton UC Berkeley Stephen Jang Xilinx Inc.
A Toolbox for Counter-Example Analysis and Optimization
Technology Mapping into General Programmable Cells
Power Optimization Toolbox for Logic Synthesis and Mapping
Mapping into LUT Structures
Delay Optimization using SOP Balancing
Faster Logic Manipulation for Large Designs
Alan Mishchenko Satrajit Chatterjee Robert Brayton UC Berkeley
Logic Synthesis Primer
A. Mishchenko S. Chatterjee1 R. Brayton UC Berkeley and Intel1
Magic An Industrial-Strength Logic Optimization, Technology Mapping, and Formal Verification System Alan Mishchenko UC Berkeley.
Versatile SAT-based Remapping for Standard Cells
Integrating an AIG Package, Simulator, and SAT Solver
A Boolean Paradigm in Multi-Valued Logic Synthesis
ECE 667 Synthesis and Verification of Digital Systems
Faster Logic Manipulation for Large Designs
Enumeration of Irredundant Circuit Structures
Fast Computation of Symmetries in Boolean Functions Alan Mishchenko
SAT-Based Area Recovery in Technology Mapping
Alan Mishchenko University of California, Berkeley
SAT-based Methods for Scalable Synthesis and Verification
Chapter 2 Introduction to Logic Circuits
Integrating Logic Synthesis, Technology Mapping, and Retiming
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth for
Integrating an AIG Package, Simulator, and SAT Solver
Introduction to Logic Synthesis
Canonical Computation without Canonical Data Structure
Delay Optimization using SOP Balancing
Example: Verification
Logic Synthesis: Past and Future
Magic An Industrial-Strength Logic Optimization, Technology Mapping, and Formal Verification System Alan Mishchenko UC Berkeley.
Innovative Sequential Synthesis and Verification
Robert Brayton Alan Mishchenko Niklas Een
SAT-based Methods: Logic Synthesis and Technology Mapping
Robert Brayton Alan Mishchenko Niklas Een
SAT-Based Logic Synthesis
Integrating AIG Package, Simulator, and SAT Solver
Fast Boolean Minimizer for Completely Specified Functions
Presentation transcript:

Faster Logic Manipulation for Large Designs Alan Mishchenko Robert Brayton University of California, Berkeley

2 Outline Motivation Motivation Simple, local, iterative computation Simple, local, iterative computation Millions of 6-16 input functions (“small practical functions” = SPFs) Millions of 6-16 input functions (“small practical functions” = SPFs) Runtime / memory / quality can be improved Runtime / memory / quality can be improved Choosing the canonical form Choosing the canonical form Historic viewpoint Historic viewpoint Disjoint-support decomposition (DSD) Disjoint-support decomposition (DSD) DSD manager DSD manager Impact on computations Impact on computations Experimental results Experimental results Statistics of DSD functions Statistics of DSD functions Runtime improvements Runtime improvements Typical DSD structures Typical DSD structures Conclusions Conclusions

3 Disjoint Support Decomposition Primitive gates Primitive gates Const0 Const0 AND AND XOR XOR PRIME PRIME 2:1 MUX 2:1 MUX Majority Majority a b c de fghik

4 References Canonical form Canonical form R. L. Ashenhurst, “The decomposition of switching functions”. Computation Lab, Harvard University, 1959, Vol. 29, pp R. L. Ashenhurst, “The decomposition of switching functions”. Computation Lab, Harvard University, 1959, Vol. 29, pp Computation from cofactors Computation from cofactors V. Bertacco and M. Damiani, "Disjunctive decomposition of logic functions," Proc. ICCAD ‘97, pp V. Bertacco and M. Damiani, "Disjunctive decomposition of logic functions," Proc. ICCAD ‘97, pp Computation from cofactors (corrections) Computation from cofactors (corrections) Y. Matsunaga, "An exact and efficient algorithm for disjunctive decomposition", Proc. SASIMI '98, pp Y. Matsunaga, "An exact and efficient algorithm for disjunctive decomposition", Proc. SASIMI '98, pp Alternative computations Alternative computations T. Sasao and M. Matsuura, "DECOMPOS: An integrated system for functional decomposition," Proc. IWLS ’98, pp T. Sasao and M. Matsuura, "DECOMPOS: An integrated system for functional decomposition," Proc. IWLS ’98, pp S.-I. Minato and G. De Micheli, “Finding all simple disjunctive decompositions using irredundant sum-of-products forms”. Proc. ICCAD’98, pp S.-I. Minato and G. De Micheli, “Finding all simple disjunctive decompositions using irredundant sum-of-products forms”. Proc. ICCAD’98, pp Boolean operations Boolean operations S. Plaza and V. Bertacco, "Boolean operations on decomposed functions", Proc. IWLS ’05. S. Plaza and V. Bertacco, "Boolean operations on decomposed functions", Proc. IWLS ’05. Applications in synthesis and mapping Applications in synthesis and mapping A. Mishchenko, R. K. Brayton, and S. Chatterjee, "Boolean factoring and decomposition of logic networks", Proc. ICCAD'08, pp A. Mishchenko, R. K. Brayton, and S. Chatterjee, "Boolean factoring and decomposition of logic networks", Proc. ICCAD'08, pp

5 Timeline of (Canonical) Forms Truth tables (TTs) (< 1980) Truth tables (TTs) (< 1980) Sums-of-products (SOPs) ( ) Sums-of-products (SOPs) ( ) Binary decision diagrams (BDDs) ( ) Binary decision diagrams (BDDs) ( ) And-inverter graphs (AIGs) and truth tables ( ) And-inverter graphs (AIGs) and truth tables ( ) Disjoint-support decompositions (DSDs) (> 2012) Disjoint-support decompositions (DSDs) (> 2012) For small practical functions (SPFs) only For small practical functions (SPFs) only

6 DSDs vs BDDs vs TTs for SPFs TTs dominate BDDs in terms of memory and runtime TTs dominate BDDs in terms of memory and runtime TTs and BDDs are equally (in)convenient for detecting Boolean properties TTs and BDDs are equally (in)convenient for detecting Boolean properties DSDs take less memory/runtime than BDDs/TTs for pratical functions of K inputs (8 < K < 16) DSDs take less memory/runtime than BDDs/TTs for pratical functions of K inputs (8 < K < 16) DSDs explicitly represent Boolean properties DSDs explicitly represent Boolean properties Symmetry, unateness, NPN canonicity, decomposability, etc Symmetry, unateness, NPN canonicity, decomposability, etc Very important for practical applications! Very important for practical applications!

7 DSD Manager Similar to BDD manager Similar to BDD manager Maintains canonical forms Maintains canonical forms Performs Boolean operations Performs Boolean operations Employs computed table Employs computed table Different from BDD manager Different from BDD manager Different data structure Different data structure Different normalization rules Different normalization rules More reusable computed table More reusable computed table

8 Primitives of DSD Manager One constant 0 node One constant 0 node One primary input node n One primary input node n Multi-input AND and XOR nodes with ordered fanins Multi-input AND and XOR nodes with ordered fanins Three-input MUX nodes Three-input MUX nodes Multi-input PRIME nodes Multi-input PRIME nodes Non-decomposable functions Non-decomposable functions

9 Canonicity of DSDs Propagating inverters Propagating inverters AND(!a, !XOR(b, c))  AND(n, XOR(n, n)) AND(!a, !XOR(b, c))  AND(n, XOR(n, n)) Collapsing operators Collapsing operators AND(a, AND(b, !AND(c, d))  AND(n, n, !AND(n, n)) AND(a, AND(b, !AND(c, d))  AND(n, n, !AND(n, n)) Ordering fanins of AND/XOR Ordering fanins of AND/XOR Use support size Use support size If there is a tie, AND precedes XOR precedes MUX precedes PRIME. If there is a tie, AND precedes XOR precedes MUX precedes PRIME. If there is a tie, a non-inverted fanin precedes a inverted fanin. If there is a tie, a non-inverted fanin precedes a inverted fanin. If there is a tie, the fanins’ fanins are ordered and compared in their selected order If there is a tie, the fanins’ fanins are ordered and compared in their selected order If the recursive comparison fails to produce a unique order, the fanins’ DSD structures are isomorphic and therefore their order is immaterial. If the recursive comparison fails to produce a unique order, the fanins’ DSD structures are isomorphic and therefore their order is immaterial. Unifying variables Unifying variables AND(a, XOR(b, c), MUX(d, e, f))  AND(n, XOR(n, n), MUX(n, n, n)) AND(a, XOR(b, c), MUX(d, e, f))  AND(n, XOR(n, n), MUX(n, n, n))

10 Boolean Properties of SPFs (industrial benchmarks)

11 Boolean Properties of SPFs (public benchmarks)

12 LUT Structure Mapping Runtime

13 Typical DSD Structures !a = NOT( a ) (ab) = AND( a, b ) [ab] = XOR( a, b ) = MUX( a, b, c )

14 Conclusion (Re)invented DSD (Re)invented DSD Canonical form, which exposes Boolean properties Canonical form, which exposes Boolean properties Introduced a DSD package Introduced a DSD package An alternative to a BDD package for SPFs An alternative to a BDD package for SPFs Discussed preliminary experimental results Discussed preliminary experimental results Exciting future work is waiting to be done! Exciting future work is waiting to be done!

15 Abstract When logic transformations, such as circuit restructuring, technology mapping, and post-mapping optimization, are repeatedly applied to large hardware designs, millions of relatively small (6-16 input) Boolean functions have to be efficiently manipulated. This paper focuses on a novel representation of these small functions, in terms of their disjoint-support decomposition (DSD) structures. A new DSD manipulation package is developed, which allows for faster logic manipulation compared to known methods. When logic transformations, such as circuit restructuring, technology mapping, and post-mapping optimization, are repeatedly applied to large hardware designs, millions of relatively small (6-16 input) Boolean functions have to be efficiently manipulated. This paper focuses on a novel representation of these small functions, in terms of their disjoint-support decomposition (DSD) structures. A new DSD manipulation package is developed, which allows for faster logic manipulation compared to known methods.