Logic Synthesis Part II

Slides:



Advertisements
Similar presentations
FUNCTION OPTIMIZATION Switching Function Representations can be Classified in Terms of Levels Number of Levels, k, is Number of Unique Boolean (binary)
Advertisements

CSEE 4823 Advanced Logic Design Handout: Lecture #2 1/22/15
ECE C03 Lecture 31 Lecture 3 Two-Level Logic Minimization Algorithms Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
ECE Synthesis & Verification 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits Introduction to Logic Synthesis.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Logic Synthesis 2 Outline –Two-Level Logic Optimization –ESPRESSO Goal –Understand two-level optimization –Understand ESPRESSO operation.
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Chapter 3 Simplification of Switching Functions
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.
Graph Coloring Algorithms for Fast Evaluation of Curtis Decomposition Marek Perkowski, Rahul Malvi, Stan Grygiel, Mike Burns, and Alan Mishchenko Portland.
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Give qualifications of instructors: DAP
ECE Synthesis & Verification - Lecture 9b 1 ECE 697B (667) Fall 2004 ECE 697B (667) Fall 2004 Synthesis and Verification of Digital Systems Boolean.
ECE Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based.
Gate Logic: Two Level Canonical Forms
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 4-1 Chapter #2: Two-Level Combinational Logic Section 2.3, Switches and Tools.
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 Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure.
ECE 667 Synthesis and Verification of Digital Systems
Intro to Logic Synthesis 1 Introduction to Logic Synthesis Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization I.
ECE 667 Synthesis and Verification of Digital Systems
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Multi-level.
Overview of Chapter 3 °K-maps: an alternate approach to representing Boolean functions °K-map representation can be used to minimize Boolean functions.
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
Department of Computer Engineering
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
Optimization Algorithm
Heuristic Two-level Logic Optimization Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes.
Graph Coloring. Introduction When a map is colored, two regions with a common border are customarily assigned different colors. We want to use a small.
Two-Level Simplification Approaches Algebraic Simplification: - algorithm/systematic procedure is not always possible - No method for knowing when the.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
Two Level and Multi level Minimization
Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA)
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
2-1 Introduction Gate Logic: Two-Level Simplification Design Example: Two Bit Comparator Block Diagram and Truth Table A 4-Variable K-map for each of the.
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.
CMPUT Computer Organization and Architecture II1 CMPUT329 - Fall 2003 Topic 5: Quine-McCluskey Method José Nelson Amaral.
1 Quine-McCluskey Method. 2 Motivation Karnaugh maps are very effective for the minimization of expressions with up to 5 or 6 inputs. However they are.
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
Multi-Level Logic Optimization. Multi-Level Logic Synthesis Two Level Logic : –Espresso –Programmable Logic Array (PLA) Multilevel Logic : –Standard Cell.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
CSE 140: Components and Design Techniques for Digital Systems Lecture 3: Incompletely Specified Functions and K Maps CK Cheng Dept. of Computer Science.
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
Karnaugh Maps (K maps).
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect10: Two-level Logic Minimization.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
CHAPTER 6 Quine-McCluskey Method
Lecture 3: Incompletely Specified Functions and K Maps
Lecture #6 EGR 277 – Digital Logic
CS 352 Introduction to Logic Design
Example of application: Decomposition
A Boolean Paradigm in Multi-Valued Logic Synthesis
Lecture 3: Incompletely Specified Functions and K Maps
ECE 667 Synthesis and Verification of Digital Systems
Optimization Algorithm
Overview Part 2 – Circuit Optimization
design entry (schematic capture, VHDL, truth table and etc.)
Presentation transcript:

Logic Synthesis Part II Maciej Ciesielski ciesiel@ecs.umass.edu Univ. of Massachusetts Amherst, MA

Outline Last time: Synthesis flow Two-level synthesis (PLA) Exact methods (Quine McCluskey) Heuristic methods (Espresso) Multi-level synthesis (standard cells/FPGA) Structural synthesis (SIS) Today: Functional decomposition Traditional – disjoint decomposition (Ashenhurst Curtis) BDD-based bidecomposition (BDS) Logic Synthesis 2

Technology-independent Synthesis Flow HDL specification Technology-independent optimization Technology mapping Cell library Manufacturing Front-end parsing Logic synthesis Logic Synthesis 2

Logic Optimization methods Two-level logic (PLA) Exact (QM) Heuristic (espresso) Multi-level logic (standard cells) Boolean Structural (SIS) Functional (AC, Karp) (BDD-based) algebraic Boolean Logic Synthesis 2

Two-level minimization - basic idea Initial representation: x y z 0 – 0 0 1 – – 1 1 1 – 1 f1 f2 0 1 1 0 000 100 110 010 111 011 f1 f2 101 x y z 0 – 0 0 1 1 1 – 1 f1 f2 0 1 1 1 1 0 Minimized function: f1 f2 000 100 110 010 111 011 101 x y z Logic Synthesis 2

Exact 2-Level Minimization (Quine-McCluskey) (on set) (don’t care set) Primes of (F+D) = ( p1 p2 p3 ) Minterms of F y’ w x’z’ x y z’ w x’ y z w x’ y z’ w x’ y’ z’ w’ essential minterm Solution: {p1,p2}  y + w is minimum prime cover (non-unique). Possible approach (SAT): (p1+p3)(p2 +p3)(p1+p2)p2 = 1 Logic Synthesis 2

Heuristic 2-level logic minimization (espresso) Consider F(a,b,c) initially specified as: f = {abc, abc, abc} (on-set), and d ={abc, abc} (don’t care set) abc is redundant a is prime F3= a+abc Expand abc  bc Expand abca F2= a+abc + abc F4= a+bc F1= abc + abc+ abc off on don’t care a c b Logic Synthesis 2

Multi-level Minimization: Boolean network 6 1 5 3 4 7 8 9 2 Outputs Inputs Internal nodes, single-output functions Goal: minimize some measure of network complexity number of 2-input gates number of literals (variables), represe Eventually, the nodes have to be mapped to standard cells (technology mapping) Logic Synthesis 2

Structural Operations (algebraic) Basic Operations: 1. Decomposition (single function) f = abc+abd+a’c’d’+b’c’d’  f = xy+x’y’, x = ab, y = c+d 2. Extraction (multiple functions) f = (az+bz’)cd+e g = (az+bz’)e’ h = cde f = xy+e, g = xe’, h = ye, x = az+bz’, y = cd 3. Factoring (series-parallel decomposition) f = ac+ad+bc+bd+e f = (a+b)(c+d)+e Logic Synthesis 2

Structural Operations, cont’d. 4. Substitution g = a+b f = ac+bc + d  f = gc+d 5. Collapsing (elimination) f = ga+g’b g = c+d f = ac+ad+bc’d’ Note: algebraic division plays a key role in all these algorithms: given function f, find g, such that f = g h, where support(g)  support(h) =  Logic Synthesis 2

Functional Decomposition (multi-level minimization) Classical Asenhurst-Curtis decomposition, (based on decomposition charts) A-C decomposition using BDDs BDD-based bi-decomposition (BDS)

Overview The concept of functional decomposition Two uses of BDDs in synthesis as a computation engine to implement algorithms as a representation that helps find 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 Bi-decomposition Logic Synthesis 2

Two-Level Curtis Decomposition F(X) = H( G(B), A ), X = B  A B = bound set A= free set F G H A B F X if B  A = , this is disjoint decomposition if B  A  , this is non-disjoint decomposition Logic Synthesis 2

Decomposition Types F H A G B B F G H A F G H A B Simple disjoint decomposition (Asenhurst) F H A G B B F G H A F G H A B Disjoint decomposition (Curtis) Non-disjoint decomposition Logic Synthesis 2

Incompatibility Graph Decomposition Chart Bound Set = {a,b} 3 1 4 2 Incompatibility Graph  =2 G G Free Set = {c,d} 10 1 11 01 00 1 2 3 4 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) Logic Synthesis 2

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

Asenhurst-Curtis Decomposition 1 2 10 11 01 00 Bound Set = {a,b} Free Set = {c,d} Here = 2, function H must distinguish two values need k=1 bit to encode outputs of G F G H a b c d 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) Logic Synthesis 2

Multi-Level Curtis Decomposition Two-level decomposition is iteratively applied to new functions Hi and 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 m outputs is m * 2n. Logic Synthesis 2

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 decomposition F(X) = Hi (Gi(Bi ), Ai ) such that the column multiplicity is minimal, and compute DFC (disjoint function cardinality). Repeat the process for all partitions until the decomposition with minimum DFC is found. Logic Synthesis 2

Using BDD to direct Decomposition Problem with classical AC decomposition: Need one decomposition chart for each decomposition Computationally expensive! 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 Logic Synthesis 2

Binary Decision Diagram (BDD) - review f = ab+a’c+a’bd Graph representation of a Boolean function - vertices represent decision nodes for variables - two children represent the two subfunctions f(x = 0) and f(x = 1) (cofactors) - restrictions on ordering and reduction rules can make a BDD representation canonical c a b d 1 c+bd root node c+d 1 Logic Synthesis 2

BDD-Based Decomposition Disjoint decomposition: based on BDD cut that separates bound set from free set Bound set on top (Lai/Pedram/Vardhula, DAC’93) Free set on top (Stanion/Sechen, DAC’95) Bi-decomposition using the concept of dominators BDS system (Yang/Ciesielski, ICDD’99) Recursive decomposition (Bertacco/Damiani,ICCAD’97) Implicit decomposition (Wurth/Eckl/Legl,DAC’95) Logic Synthesis 2

BDD-based Functional Decomposition Functional decomposition (AC): F(X) = H (G(B ), A ) Find a BDD cut , dividing variables into disjoint sets: bound set B free set A F B A BDD cut free set bound set F G H B A Logic Synthesis 2

Bound Set on Top Algorithm - Function G Free Set 1 A B C G={g0,g1}, A=g0g1, B=g0g1, C=g0g1 g0=abc+abc+abc, g1 = abc+ abc = 1 = 0 Logic Synthesis 2

Bound Set on Top Algorithm - Function H Free Set A B C 1 F(a,b,c,d,e) = H( g1(a,b,c), g2(a,b,c), d, e ) H=g0g1e + g0g1d + g0g1e = 1 = 0 Logic Synthesis 2

AC Decomposition Algorithm (bound set on top) 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) Note: This is an ALGEBRAIC decomposition The algorithm work only for disjoint decompositions: the variables in the bound set and the free set are disjoint ! Logic Synthesis 2

Free Set on Top Algorithm - Function G B=10 Free Set Bound Set g1 g2 F 1 Bound Set Is it the same function as for the “bound set on top” ? – NO, look at the truth table. G={g1,g2}, g1=cde+cd, g2=d+e = 1 = 0 Logic Synthesis 2

Free Set on Top Algorithm - Function H Bound Set g1 g2 Bound Set B=10 A=00 C=01 1 F(a,b,c,d,e) = H( a, b, g1(c,d,e), g2(c,d,e) ) H=(ab+ ab) g1 + (ab+ ab) g2 = 1 = 0 Logic Synthesis 2

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). Logic Synthesis 2

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c2 is a don’t care set. Why: c1  c2  c1c2 +c1c2 Logic Synthesis 2

Non-Disjoint Decomposition Example B C B A A B A B B B A There is no disjoint decomposition with any bound set. But there exists a non-disjoint decomposition with bound set {a,b,c} Logic Synthesis 2

Non-Disjoint Bi-Decomposition There is a better,more systematic way to perform non-disjoint decomposition without adding variables Bi-decomposition: F = D  Q uses BDD cut , but there is no concept of bound set / free set The top set defines a divisor D The bottom set defines the quotient Q (sort of …) F D F/D BDD cut F D  Q Boolean operator (AND, OR, XOR) Logic Synthesis 2