Presentation is loading. Please wait.

Presentation is loading. Please wait.

Logic Synthesis Part II

Similar presentations


Presentation on theme: "Logic Synthesis Part II"— Presentation transcript:

1 Logic Synthesis Part II
Maciej Ciesielski Univ. of Massachusetts Amherst, MA

2 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

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

4 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

5 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

6 Exact 2-Level Minimization (Quine-McCluskey)
(on set) (don’t care set) Primes of (F+D) = ( p p 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

7 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

8 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

9 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

10 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

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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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


Download ppt "Logic Synthesis Part II"

Similar presentations


Ads by Google