Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE241 L5 Synthesis.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design.

Similar presentations


Presentation on theme: "CSE241 L5 Synthesis.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design."— Presentation transcript:

1 CSE241 L5 Synthesis.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design Systems January 21, 2003

2 CSE241 L5 Synthesis.2Kahng & Cichy, UCSD ©2003 Outline  Introduction  Two-level Logic Synthesis  Multi-level Logic Synthesis

3 CSE241 L5 Synthesis.3Kahng & Cichy, UCSD ©2003 Introduction  Cho Moon l PhD from UC Berkeley 92 l Lattice Semiconductor (synthesis) 92 - 96 l Cadence Design Systems (synthesis, verification and timing analysis) 96 – present  Why logic synthesis? l Ubiquitous – used almost everywhere VLSI is done l Body of useful and general techniques – same solutions can be used for different problems l Foundation for many applications such as -Formal verification -ATPG -Timing analysis -Sequential optimization

4 CSE241 L5 Synthesis.4Kahng & Cichy, UCSD ©2003 RTL Design Flow RTL Synthesis HDL netlist Logic Synthesis netlist Library Physical Synthesis layout a b s q 0 1 d clk a b s q 0 1 d Module Generators Manual Design Slide courtesy of Devadas, et. al

5 CSE241 L5 Synthesis.5Kahng & Cichy, UCSD ©2003 Logic Synthesis Problem  Given l Initial gate-level netlist l Design constraints -Input arrival times, output required times, power consumption, noise immunity, etc… l Target technology libraries  Produce l Smaller, faster or cooler gate-level netlist that meets constraints Very hard optimization problem!

6 CSE241 L5 Synthesis.6Kahng & Cichy, UCSD ©2003 Combinational Logic Synthesis Logic Synthesis netlist Library tech independent tech dependent 2-level Logic opt multilevel Logic opt Library Slide courtesy of Devadas, et. al

7 CSE241 L5 Synthesis.7Kahng & Cichy, UCSD ©2003 Outline  Introduction  Two-level Logic Synthesis  Multi-level Logic Synthesis  Sequential Logic Synthesis

8 CSE241 L5 Synthesis.8Kahng & Cichy, UCSD ©2003 Two-level Logic Synthesis Problem  Given an arbitrary logic function in two-level form, produce a smaller representation.  For sum-of-products (SOP) implementation on PLAs, fewer product terms and fewer inputs to each product term mean smaller area. F = A B + A B C F = A B I1 I2 O1 O2

9 CSE241 L5 Synthesis.9Kahng & Cichy, UCSD ©2003 Boolean Functions f(x) : B n B B = {0, 1}, x = (x 1, x 2, …, x n )  x 1, x 2, … are variables  x 1, x 1, x 2, x 2, … are literals  each vertex of B n is mapped to 0 or 1  the onset of f is a set of input values for which f(x) = 1  the offset of f is a set of input values for which f(x) = 0

10 CSE241 L5 Synthesis.10Kahng & Cichy, UCSD ©2003 Literals Slide courtesy of Devadas, et. al

11 CSE241 L5 Synthesis.11Kahng & Cichy, UCSD ©2003 Boolean Formulas Slide courtesy of Devadas, et. al

12 CSE241 L5 Synthesis.12Kahng & Cichy, UCSD ©2003 Logic Functions: Slide courtesy of Devadas, et. al

13 CSE241 L5 Synthesis.13Kahng & Cichy, UCSD ©2003 Cube Representation Slide courtesy of Devadas, et. al

14 CSE241 L5 Synthesis.14Kahng & Cichy, UCSD ©2003 Operations on Logic Functions  (1)Complement: f f interchange ON and OFF-SETS  (2)Product (or intersection or logical AND) h = f  g or h = f  g  (3)Sum (or union or logical OR): h = f + g or h = f  g

15 CSE241 L5 Synthesis.15Kahng & Cichy, UCSD ©2003  A function can be represented by a sum of cubes (products): f = ab + ac + bc Since each cube is a product of literals, this is a “sum of products” representation  A SOP can be thought of as a set of cubes F F = {ab, ac, bc} = C  A set of cubes that represents f is called a cover of f. F={ab, ac, bc} is a cover of f = ab + ac + bc. Sum-of-products (SOP)

16 CSE241 L5 Synthesis.16Kahng & Cichy, UCSD ©2003 Prime Cover  A cube is prime if there is no other cube that contains it (for example, b c is not a prime but b is)  A cover is prime iff all of its cubes are prime c a b

17 CSE241 L5 Synthesis.17Kahng & Cichy, UCSD ©2003 Irredundant Cube  A cube of a cover C is irredundant if C fails to be a cover if c is dropped from C  A cover is irredundant iff all its cubes are irredudant (for exmaple, F = a b + a c + b c) c b a Not covered

18 CSE241 L5 Synthesis.18Kahng & Cichy, UCSD ©2003 Quine-McCluskey Method  We want to find a minimum prime and irredundant cover for a given function. l Prime cover leads to min number of inputs to each product term. l Min irredundant cover leads to min number of product terms.  Quine-McCluskey (QM) method (1960’s) finds a minimum prime and irredundant cover. l Step 1: List all minterms of on-set: O(2^n) n = #inputs l Step 2: Find all primes: O(3^n) n = #inputs l Step 3: Construct minterms vs primes table l Step 4: Find a min set of primes that covers all the minterms: O(2^m) m = #primes

19 CSE241 L5 Synthesis.19Kahng & Cichy, UCSD ©2003 QM Example (Step 1)  F = a’ b’ c’ + a b’ c’ + a b’ c + a b c + a’ b c  List all on-set minterms Minterms a’ b’ c’ a b’ c’ a b’ c a b c a’ b c

20 CSE241 L5 Synthesis.20Kahng & Cichy, UCSD ©2003 QM Example (Step 2)  F = a’ b’ c’ + a b’ c’ + a b’ c + a b c + a’ b c  Find all primes. primesb’ c’a b’a cb c

21 CSE241 L5 Synthesis.21Kahng & Cichy, UCSD ©2003 QM Example (Step 3)  F = a’ b’ c’ + a b’ c’ + a b’ c + a b c + a’ b c  Construct minterms vs primes table (prime implicant table) by determining which cube is contained in which prime. X at row i, colum j means that cube in row i is contained by prime in column j. b’ c’a b’a cb c a’ b’ c’X a b’ c’XX a b’ cXX a b cXX a’ b cX

22 CSE241 L5 Synthesis.22Kahng & Cichy, UCSD ©2003 QM Example (Step 4)  F = a’ b’ c’ + a b’ c’ + a b’ c + a b c + a’ b c  Find a minimum set of primes that covers all the minterms “Minimum column covering problem” b’ c’a b’a cb c a’ b’ c’X a b’ c’XX a b’ cXX a b cXX a’ b cX Essential primes

23 CSE241 L5 Synthesis.23Kahng & Cichy, UCSD ©2003 ESPRESSO – Heuristic Minimizer  Quine-McCluskey gives a minimum solution but is only good for functions with small number of inputs (< 10)  ESPRESSO is a heuristic two-level minimizer that finds a “minimal” solution ESPRESSO(F) { do { reduce(F); expand(F); irredundant(F); } while (fewer terms in F); verfiy(F); }

24 CSE241 L5 Synthesis.24Kahng & Cichy, UCSD ©2003 ESPRESSO ILLUSTRATED Reduce Irredundant Expand

25 CSE241 L5 Synthesis.25Kahng & Cichy, UCSD ©2003 Outline  Introduction  Two-level Logic Synthesis  Multi-level Logic Synthesis

26 CSE241 L5 Synthesis.26Kahng & Cichy, UCSD ©2003 Multi-level Logic Synthesis  Two-level logic synthesis is effective and mature  Two-level logic synthesis is directly applicable to PLAs and PLDs But…  There are many functions that are too expensive to implement in two-level forms (too many product terms!)  Two-level implementation constrains layout (AND-plane, OR-plane)  Rule of thumb: l Two-level logic is good for control logic l Multi-level logic is good for datapath or random logic

27 CSE241 L5 Synthesis.27Kahng & Cichy, UCSD ©2003 Representation: Boolean Network Boolean network: directed acyclic graph (DAG) node logic function representation f j (x,y) node variable y j : y j = f j (x,y) edge (i,j) if f j depends explicitly on y i Inputs x = (x 1, x 2,…,x n ) Outputs z = (z 1, z 2,…,z p ) Slide courtesy of Brayton

28 CSE241 L5 Synthesis.28Kahng & Cichy, UCSD ©2003 Multi-level Logic Synthesis Problem  Given l Initial Boolean network l Design constraints -Arrival times, required times, power consumption, noise immunity, etc… l Target technology libraries  Produce l a minimum area netlist consisting of the gates from the target libraries such that design constraints are satisfied

29 CSE241 L5 Synthesis.29Kahng & Cichy, UCSD ©2003 Modern Approach to Logic Optimization  Divide logic optimization into two subproblems: l Technology-independent optimization -determine overall logic structure -estimate costs (mostly) independent of technology -simplified cost modeling l Technology-dependent optimization (technology mapping) -binding onto the gates in the library -detailed technology-specific cost model  Orchestration of various optimization/transformation techniques for each subproblem Slide courtesy of Keutzer

30 CSE241 L5 Synthesis.30Kahng & Cichy, UCSD ©2003 Technology-Independent Optimization Simplified cost models  Area = sum of factored form literals in all nodes l Number of product terms is not a good measure of area in multi- level implementation f=ad+ae+bd+be+cd+ce (6 product terms) f’=a’b’c’+d’e’ (2 product terms) The only difference between f and f’ is inversion  f=(a+b+c)(d+e) (5 literals in factored form)  f’= a’b’c’ + d’e’ (5 literals in factored form)  Delay = levels of logic on critical paths

31 CSE241 L5 Synthesis.31Kahng & Cichy, UCSD ©2003 Technology-Independent Optimization  Technology-independent optimization is a bag of tricks: l Two-level minimization (also called simplify) l Constant propagation (also called sweep) f = a b + c; b = 1 => f = a + c l Decomposition (single function) f = abc+abd+a’c’d’+b’c’d’ => f = xy + x’y’; x = ab ; y = c+d l 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

32 CSE241 L5 Synthesis.32Kahng & Cichy, UCSD ©2003 More Technology-Independent Optimization  More technology-independent optimization tricks: l Substitution g = a+bf = a+bc  f = g(a+b) l Collapsing (also called elimination) f = ga+g’bg = c+d  f = ac+ad+bc’d’g = c+d l Factoring (series-parallel decomposition) f = ac+ad+bc+bd+e => f = (a+b)(c+d)+e

33 CSE241 L5 Synthesis.33Kahng & Cichy, UCSD ©2003 Summary of Typical Recipe for TI Optimization  Propagate constants  Simplify: two-level minimization at Boolean network node  Decomposition  Local “Boolean” optimizations l Boolean techniques exploit Boolean identities (e.g., a a’ = 0) Consider f = a b’ + a c’ + b a’ + b c’ + c a’ + c b’ l Algebraic factorization procedures f = a (b’ + c’) + a’ (b + c) + b c’ + c b’ l Boolean factorization produces f = (a + b + c) (a’ + b’ + c’) Slide courtesy of Keutzer

34 CSE241 L5 Synthesis.34Kahng & Cichy, UCSD ©2003 Technology-Dependent Optimization Technology-dependent optimization consists of  Technology mapping: maps Boolean network to a set of gates from technology libraries  Local transformations l Discrete resizing l Cloning l Fanout optimization (buffering) l Logic restructuring Slide courtesy of Keutzer

35 CSE241 L5 Synthesis.35Kahng & Cichy, UCSD ©2003 Technology Mapping Input 1. Technology independent, optimized logic network 2. Description of the gates in the library with their cost Output l Netlist of gates (from library) which minimizes total cost General Approach l Construct a subject DAG for the network l Represent each gate in the target library by pattern DAG’s l Find an optimal-cost covering of subject DAG using the collection of pattern DAG’s l Canonical form: 2-input NAND gates and inverters

36 CSE241 L5 Synthesis.36Kahng & Cichy, UCSD ©2003 DAG Covering  DAG covering is an NP-hard problem  Solve the sub-problem optimally l Partition DAG into a forest of trees l Solve each tree optimally using tree covering l Stitch trees back together Slide courtesy of Keutzer

37 CSE241 L5 Synthesis.37Kahng & Cichy, UCSD ©2003 Tree Covering Algorithm  Transform netlist and libraries into canonical forms l 2-input NANDs and inverters  Visit each node in BFS from inputs to outputs l Find all candidate matches at each node N -Match is found by comparing topology only (no need to compare functions) l Find the optimal match at N by computing the new cost -New cost = cost of match at node N + sum of costs for matches at children of N l Store the optimal match at node N with cost  Optimal solution is guaranteed if cost is area  Complexity = O(n) where n is the number of nodes in netlist

38 CSE241 L5 Synthesis.38Kahng & Cichy, UCSD ©2003 Tree Covering Example into the technology library (simple example below) Find an ``optimal’’ (in area, delay, power) mapping of this circuit Slide courtesy of Keutzer

39 CSE241 L5 Synthesis.39Kahng & Cichy, UCSD ©2003 Elements of a library - 1 INVERTER2 NAND23 NAND34 NAND45 Element/Area CostTree Representation (normal form) Slide courtesy of Keutzer

40 CSE241 L5 Synthesis.40Kahng & Cichy, UCSD ©2003 Elements of a library - 2 AOI21 4 AOI22 5 Element/Area Cost Tree Representation (normal form) Slide courtesy of Keutzer

41 CSE241 L5 Synthesis.41Kahng & Cichy, UCSD ©2003 Trivial Covering subject DAG 7NAND2 (3) = 21 5INV (2) = 10 Area cost 31 Slide courtesy of Keutzer Can we do better with tree covering?

42 CSE241 L5 Synthesis.42Kahng & Cichy, UCSD ©2003 Optimal tree covering - 1 ``subject tree’’ 3 2 2 3 Slide courtesy of Keutzer

43 CSE241 L5 Synthesis.43Kahng & Cichy, UCSD ©2003 Optimal tree covering - 2 ``subject tree’’ 5 8 3 2 2 3 Slide courtesy of Keutzer

44 CSE241 L5 Synthesis.44Kahng & Cichy, UCSD ©2003 Optimal tree covering - 3 ``subject tree’’ Cover with ND2 or ND3 ? 3 2 2 3 8 13 5 1 NAND23 + subtree 5 1 NAND3= 4 Area cost 8 Slide courtesy of Keutzer

45 CSE241 L5 Synthesis.45Kahng & Cichy, UCSD ©2003 Optimal tree covering – 3b ``subject tree’’ 3 2 2 3 8 13 5 4 Label the root of the sub-tree with optimal match and cost Slide courtesy of Keutzer

46 CSE241 L5 Synthesis.46Kahng & Cichy, UCSD ©2003 Optimal tree covering - 4 ``subject tree’’ Cover with INV or AO21 ? 5 4 3 8 2 2 13 2 1 Inverter 2 + subtree 13 Area cost 15 1 AO21 4 + subtree 1 3 + subtree 22 Area cost 9 Slide courtesy of Keutzer

47 CSE241 L5 Synthesis.47Kahng & Cichy, UCSD ©2003 Optimal tree covering – 4b ``subject tree’’ 5 4 3 8 2 2 13 2 9 Label the root of the sub-tree with optimal match and cost Slide courtesy of Keutzer

48 CSE241 L5 Synthesis.48Kahng & Cichy, UCSD ©2003 Optimal tree covering - 5 ``subject tree’’ Cover with ND2 or ND3 ? subtree 19 subtree 24 1 NAND23 Area cost 16 NAND2 NAND3 8 4 9 subtree 18 subtree 22 subtree 34 1 NAND34 Area cost 18 2 Slide courtesy of Keutzer

49 CSE241 L5 Synthesis.49Kahng & Cichy, UCSD ©2003 Optimal tree covering – 5b ``subject tree’’ 16 8 4 9 2 Label the root of the sub-tree with optimal match and cost Slide courtesy of Keutzer

50 CSE241 L5 Synthesis.50Kahng & Cichy, UCSD ©2003 Optimal tree covering - 6 ``subject tree’’ Cover with INV or AOI21 ? INV AOI21 Area cost 22 5 16 Area cost 18 subtree 116 1 INV 2 subtree 113 subtree 2 5 1 AOI21 4 13 Slide courtesy of Keutzer

51 CSE241 L5 Synthesis.51Kahng & Cichy, UCSD ©2003 Optimal tree covering – 6b ``subject tree’’ 5 16 18 13 Label the root of the sub-tree with optimal match and cost Slide courtesy of Keutzer

52 CSE241 L5 Synthesis.52Kahng & Cichy, UCSD ©2003 Optimal tree covering - 7 ``subject tree’’ Cover with ND2 or ND3 or ND4 ? Slide courtesy of Keutzer

53 CSE241 L5 Synthesis.53Kahng & Cichy, UCSD ©2003 Cover 1 - NAND2 ``subject tree’’ Cover with ND2 ? 16 18 subtree 118 subtree 2 0 1 NAND2 3 Area cost 21 4 9 Slide courtesy of Keutzer

54 CSE241 L5 Synthesis.54Kahng & Cichy, UCSD ©2003 Cover 2 - NAND3 ``subject tree’’ Cover with ND3? subtree 1 9 subtree 2 4 subtree 3 0 1 NAND3 4 Area cost 17 9 4 Slide courtesy of Keutzer

55 CSE241 L5 Synthesis.55Kahng & Cichy, UCSD ©2003 Cover - 3 ``subject tree’’ Cover with ND4 ? Area cost 19 subtree 1 8 subtree 2 2 subtree 3 4 subtree 4 0 1 NAND4 5 8 4 2 Slide courtesy of Keutzer

56 CSE241 L5 Synthesis.56Kahng & Cichy, UCSD ©2003 Optimal Cover was Cover 2 ``subject tree’’ INV 2 ND2 3 2 ND3 8 AOI21 4 Area cost 17 AOI21 ND2 INV ND3 Slide courtesy of Keutzer

57 CSE241 L5 Synthesis.57Kahng & Cichy, UCSD ©2003 Summary of Technology Mapping  DAG covering formulation l Separated library issues from mapping algorithm (can’t do this with rule-based systems)  Tree covering approximation l Very efficient (linear time) l Applicable to wide range of libraries (std cells, gate arrays) and technologies (FPGAs, CPLDs)  Weaknesses l Problems with DAG patterns (Multiplexors, full adders, …) l Large input gates lead to a large number of patterns

58 CSE241 L5 Synthesis.58Kahng & Cichy, UCSD ©2003 Local Transformations  Given l Technology-mapped netlist l Target technology libraries l Some violations (timing, noise immunity, power, etc…)  Produce l New netlist that corrects the given violations without introducing new violations  Approach: another bag of tricks l Discrete resizing l Cloning l Buffering l Logic restructuring l More…

59 CSE241 L5 Synthesis.59Kahng & Cichy, UCSD ©2003 Discrete Resizing b a d e f 0.2 0.3 ? b a A 0.035 b a C 0.026 DAC-2002, Physical Chip Implementation Note that some arrival and required times become invalid

60 CSE241 L5 Synthesis.60Kahng & Cichy, UCSD ©2003 Cloning b a d e f g h 0.2 ? b a d e f g h A B DAC-2002, Physical Chip Implementation Note that loads at a, b increase

61 CSE241 L5 Synthesis.61Kahng & Cichy, UCSD ©2003 Buffering b a d e f g h 0.2 ? b a d e f g h 0.1 0.2 B B DAC-2002, Physical Chip Implementation

62 CSE241 L5 Synthesis.62Kahng & Cichy, UCSD ©2003 Logic Restructuring 1 Nodes in critical section that fan out outside of critical section are duplicated h f a b c d e Late input signals f Collapsed node b c d a e e h Slides courtesy of Keutzer

63 CSE241 L5 Synthesis.63Kahng & Cichy, UCSD ©2003 Logic Restructuring 2 f Collapsed node b c d a e Collapse critical section Re-extract factor k divisor f k d c close to output b a e  Place timing-critical nodes closer to output l Make them pass through fewer gates l After collapse, a divisor is selected such that substituting k into f places critical signal c and d closer to output Slides courtesy of Keutzer

64 CSE241 L5 Synthesis.64Kahng & Cichy, UCSD ©2003 Summary of Local Transformations  Variety of methods for delay optimization l No single technique dominates  The one with more tricks wins? No!  Need a good framework for evaluating and processing different transforms l Accurate, fast timing engine with incremental analysis capability -don’t want to retime the whole design for each local transform l Simultaneous min and max delay analysis -How does fixing the setup violation affect the existing hold checks?


Download ppt "CSE241 L5 Synthesis.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits UC San Diego Winter 2003 Lecture 05: Logic Synthesis Cho Moon Cadence Design."

Similar presentations


Ads by Google