Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
The BDS Circuit Synthesis System What it Does and Doesn’t Do.
1 Don´t Care Minimization of *BMDs: Complexity and Algorithms Christoph Scholl Marc Herbstritt Bernd Becker Institute of Computer Science Albert-Ludwigs-University.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
ECE 667 Synthesis and Verification of Digital Systems
Logic Synthesis Part II
Equivalence Checking Using Cuts and Heaps Andreas Kuehlmann Florian Krohm IBM Thomas J. Watson Research Center Presented by: Zhenghua Qi.
1 Generalized Buffering of PTL Logic Stages using Boolean Division and Don’t Cares Rajesh Garg Sunil P. Khatri Department of Electrical and Computer Engineering,
Logic Synthesis 5 Outline –Multi-Level Logic Optimization –Recursive Learning - HANNIBAL Goal –Understand recursive learning –Understand HANNIBAL algorithms.
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Synthesis For Mixed CMOS/PTL Logic
Boolean Functions and their Representations
1 BDS: A BDD-Based Logic Optimization System “BDS: A BDD-Based Logic Optimization System”, by Congguang Yang and Maciej Ciesielski, 2000 By Chang Seok.
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
Rolf Drechlser’s slides used
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
1 Fault Nodes in Implication Graph for Equivalence/Dominance Collapsing, and Identifying Untestable and Independent Faults R. Sethuram
ECE Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based.
1 Synthesis For CMOS/PTL Circuits Congguang Yang Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts, Amherst Sponsored.
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
Logic Synthesis 3 1 Logic Synthesis Part III Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
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,
ECE 667 Synthesis and Verification of Digital Systems
Canonical Forms and Logic Miniminization
ICS 252 Introduction to Computer Design Multi-level Logic Optimization Fall 2006 Eli Bozorgzadeh Computer Science Department-UCI.
Fast Spectral Transforms and Logic Synthesis DoRon Motter August 2, 2001.
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Multi-level.
Faster Logic Manipulation for Large Designs Alan Mishchenko Robert Brayton University of California, Berkeley.
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect19: Multi Level Logic Minimization.
Zvi Kohavi and Niraj K. Jha 1 Multi-level Logic Synthesis.
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.
UM EECS 270 Spring 2011 – Taken from Dr.Karem Sakallah Logic Synthesis: From Specs to Circuits Implementation Styles –Random –Regular Optimization Criteria.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Abstract To present a novel logic synthesis method to reduce the area of XOR-based logic functions. Idea: To exploit linear dependency between logic sub-
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
ICS 252 Introduction to Computer Design Lecture 12 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Mihir Choudhury, Kartik Mohanram (ICCAD’10 best paper nominee) Presentor: ABert Liu.
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence.
Give qualifications of instructors: DAP
Unate Covering, Binate Covering, Graph Coloring Maximum Cliques part B.
Ruei-Rung, Lee 1. Outline Introduction Background General Non-disjoint Decompositions Rewriting K-LUT Networks Conclusions and Future Work 2.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
An Exact Algorithm for Difficult Detailed Routing Problems Kolja Sulimma Wolfgang Kunz J. W.-Goethe Universität Frankfurt.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
A New Logic Synthesis, ExorBDS
Faster Logic Manipulation for Large Designs
A. Mishchenko S. Chatterjee1 R. Brayton UC Berkeley and Intel1
Reconfigurable Computing
A Boolean Paradigm in Multi-Valued Logic Synthesis
ECE 667 Synthesis and Verification of Digital Systems
Faster Logic Manipulation for Large Designs
ECE 667 Synthesis and Verification of Digital Systems
Fast Computation of Symmetries in Boolean Functions Alan Mishchenko
Mapping into LUT Structures
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Unit 6 part B.
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
ECE 352 Digital System Fundamentals
SAT-based Methods: Logic Synthesis and Technology Mapping
Fast Boolean Minimizer for Completely Specified Functions
Presentation transcript:

Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)

Introduction

Functional Decomposition Re-express a Boolean function as –Where –Free set: –Bound set: –Disjoint decomposition

Ashenhurst Decomposition Chart Classic method –Row: bound set –Column: free set –Disjoint decomposition if column multiplicity = 2

Specialized Decompositions Algebraric Factorization: –F = A*B + C, where supp(A) and supp(B) are disjoint Boolean Factorization: –F = A*B + C, where supp(A) and supp(B) are not disjoint Bi Decomposition: –F = A (op) B, where op is any operation

Boolean Division F = QD Definition: Function D is a Boolean divisor of F if there exists a function Q, called the quotient, such that F = QD Theorem: Function D is a Boolean divisor of F iff F  D. –On-set of F is subset of the on-set of D –F implies D Example: e + bd = (e + b)(e + d)

Boolean Subtraction F = D + R Definition: Function D is a Boolean subtractor of F if there exists a function R, called the remainder, such that F = D + R. Theorem: A function D is a Boolean subtractor of F iff F  D. –On-set of D is a proper subset of the on-set of F –D implies F

BDD Summary Canonical Compact Efficient algorithms for many Boolean operations ProcedureResultTime Complexity Applyf 1 f 2 O(|G 1 |·|G 2 |) Restrictf| x i = b O(|G|·log|G|) Composef1| x i = f2 O(|G 1 | 2 · · |G 2 |)

Cut A cut (D, V – D) of a BDD is a partition of its nodes V into disjoint subsets D and (V – D) such that – root  D and terminals 0, 1  (V-D). –A cut cannot cross any path more than once.

Horizontal Cut A cut where support of D and (V-D) are disjoint. –Bound set –Free set Idea: –Exploit structures in horizontal cut Cut edge classification –  0 : pointing to 0 –  1: :pointing to 1 –  x :pointing to internal nodes

Generalized Dominator Consider a cut partitioning the set of BDD nodes function F into D and (V-D). The portion of the BDD defined by D is copied to form a separate graph. In that graph, an edge e is connected to 0 if e   0 in the original BDD of F, and it is connected to 1 if e   1 in the original BDD of F. All the internal edges e   x are left dangling. The resulting graph is called a generalized Dominator.

Example Generalized Dominator

Boolean AND Decomposition 1.Obtain divisor by redirecting dangling edges of generalized dominator to 1. 2.Obtain quotient by minimizing F with the off-set of the divisor as a don’t care set.

Example of Boolean AND Decomposition

Boolean OR Decomposition 1.Obtain subtractor by redirecting dangling edges of generalized dominator to 0. 2.Obtain remainder by minimizing F using the on-set of the subtractor as a don’t care set.

Example of Boolean OR Decomposition

Finding Generalized Dominators Number of BDD cuts is exponential. Filtering Cuts –Valid Cuts contain at least one edge connected to a terminal node. –0-Equivalent Cuts (same  0 ) result in the same AND decomposition. –1-Equivalent Cuts (same  1 ) result in the same OR decomposition.

Algebraic Bi-Decomposition

1-Dominator A node which belongs to every path leading to a ‘1’ terminal is called a 1-dominator Enables fast algebraic AND decomposition

1-Dominator

0-Dominator A node which belongs to every path leading to a ‘0’ terminal is called a 0-dominator Enables fast algebraic OR decomposition

0-Dominator

X-Dominator A node which is contained in every path is called an x- dominator Enables fast XNOR Decomposition

X-Dominator

Finding Simple Dominators All simple dominators common in that all internal edges converge to a single node. Complexity of O(V) –V is the # of variables. All Simple Dominators are found at the same time. The simple dominator closest to the middle height of the BDD is used for decomposition

Generalized X-Dominator A node which is pointed to by both complement and regular edges is called a generalized x- dominator. F=(f) !  (f !  F)

Generalized X-Dominator

Simple MUX Decomposition Each node in a BDD can be decomposed as a simple MUX Only useful when overlap between its two cofactors is small.

MUX Decomposition

Functional MUX Decomposition Control Signal is a function Requires 2 nodes which cover all paths.

Functional MUX Decomposition

Logic Synthesis

Sweep Constant and Single-Variable Nodes Removal Removal of Functionally Equivalent Nodes AND OR 1 xy xy x y xy

Eliminate Balance between Global vrs. Local Scenario Partial Collapsing

Global vrs Local BDDs Representing large Boolean networks in a global BDD causes serious computational problems. Leave in multilevel form.

BDD Decomposition Engine

Order of Decomposition 1.Simple Dominator 2.Functional MUX 3.Single MUX 4.Generalized Dominator 5.Generalized X-Dominator

Typical Logic Optimization Flow BDDlopt Boolean Simplification –(Variable Ordering) Factorization –(Recursive BDD Decomposition) Logic Sharing –(Detected on Factoring Trees)

Factoring Trees Retains information about the decomposition process Extract functionally equivalent sub-trees

Experimental Results BDDlopt Vrs SIS-1.2 AND / OR-Intensive Circuits –Resulting area almost the same –BDDlopt out-performs SIS in CPU time XOR-Intensive Circuits –BDDlopt uses 23% less gates –BDDlopt uses 14% less area –BDDlopt uses 84.4% less CPU time

BDS Vrs SIS Experimental Results Area is 3% larger Delay is 13% smaller Memory Requirement is 30% smaller Synthesis is 8X faster Superior performance on large circuits

Comparison between BDS and SIS

Performance Comparison on Large Circuits

Conclusion Decomposition –Boolean decomposition using cuts and generalized dominators. –Fast algebraic decomposition with simple dominators. –XOR, variable and functional MUX decomposition. Logic Synthesis –Sweep to remove simple redundancy. –Elimination to remove inter-gate redundancy. –Decomposition to recursively break down large functions in to basic gates.