CSE241 VLSI Digital Circuits UC San Diego

Similar documents
ECE260B CSE241A Winter Logic Synthesis

ECE260B CSE241A Winter Logic Synthesis

Technology Dependent Logic Optimization Prof. Kurt Keutzer EECS University of California Berkeley, CA Thanks to S. Devadas

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

Unit 4: Formal Verification

ICS 252 Introduction to Computer Design

Advanced Digital Logic Design EECS 303

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5. Guest Lecture by Srini Devadas

L2: Design Representations

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Synthesis 1. 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, Typeset by FoilTEX 1

ELCT201: DIGITAL LOGIC DESIGN

Chapter 3. Gate-Level Minimization. Outlines

ECE 3060 VLSI and Advanced Digital Design

CS8803: Advanced Digital Design for Embedded Hardware

Specifying logic functions

ESE535: Electronic Design Automation. Today. EDA Use. Problem PLA. Programmable Logic Arrays (PLAs) Two-Level Logic Optimization

Lecture Outline. Adam Teman, 2018

ELCT201: DIGITAL LOGIC DESIGN

Digital VLSI Design. Lecture 5: Logic Synthesis

Design of Framework for Logic Synthesis Engine

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

COPYRIGHTED MATERIAL INDEX

Logic Synthesis and Verification

Combinational Logic Circuits

Lecture (05) Boolean Algebra and Logic Gates

IMPLEMENTATION DESIGN FLOW

COE 561 Digital System Design & Synthesis Introduction

CS470: Computer Architecture. AMD Quad Core

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER

Simplification of Boolean Functions

Boolean Algebra and Logic Gates

Combinational Logic & Circuits

IT 201 Digital System Design Module II Notes

ABC basics (compilation from different articles)

SIS Logic Synthesis System

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Chapter 2. Boolean Expressions:

L3: Representations of functions

Combinational Logic Circuits Part III -Theoretical Foundations

Versatile SAT-based Remapping for Standard Cells

ECE380 Digital Logic

QUESTION BANK FOR TEST

Gate Level Minimization Map Method

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

Gate-Level Minimization

Representations of Terms Representations of Boolean Networks

Gate-Level Minimization

B.Tech II Year I Semester (R13) Regular Examinations December 2014 DIGITAL LOGIC DESIGN

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

Combinational Circuits

CMPE223/CMSE222 Digital Logic

Introduction. Sungho Kang. Yonsei University

Chapter 3 Simplification of Boolean functions

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick

Incompletely Specified Functions with Don t Cares 2-Level Transformation Review Boolean Cube Karnaugh-Map Representation and Methods Examples

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

A New Algorithm to Create Prime Irredundant Boolean Expressions

TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS

Programmable Logic Devices (PLDs)

2.1 Binary Logic and Gates

Code No: R Set No. 1

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 2. LECTURE: LOGIC NETWORK MINIMIZATION 2016/2017

(Refer Slide Time 6:48)

Digital Logic Design. Outline

Quine-McCluskey Algorithm

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

ECE 3060 VLSI and Advanced Digital Design

CHAPTER-2 STRUCTURE OF BOOLEAN FUNCTION USING GATES, K-Map and Quine-McCluskey

UNIT II. Circuit minimization

ESE535: Electronic Design Automation. Today. LUT Mapping. Simplifying Structure. Preclass: Cover in 4-LUT? Preclass: Cover in 4-LUT?

Computer-Aided Design (CAD) Logic Synthesis Tutorial. Prepared by Ray Cheung

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Multi-valued Logic Synthesis. Robert K Brayton Sunil P Khatri University of California Berkeley, CA brayton,

Experiment 4 Boolean Functions Implementation

ECE 595Z Digital Systems Design Automation

Final Examination (Open Katz, asynchronous & test notes only, Calculators OK, 3 hours)

Based on slides/material by. Topic Design Methodologies and Tools. Outline. Digital IC Implementation Approaches

Digital Logic Design (CEN-120) (3+1)

Summary. Boolean Addition

SIS: A System for Sequential Circuit Synthesis

Code No: R Set No. 1

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Gate-Level Minimization. section instructor: Ufuk Çelikcan

Bawar Abid Abdalla. Assistant Lecturer Software Engineering Department Koya University

Code No: R Set No. 1

Ch. 5 : Boolean Algebra &

Delay Estimation for Technology Independent Synthesis

Programmable Logic Devices

Programmable Logic Devices. Programmable Read Only Memory (PROM) Example

Larger K-maps. So far we have only discussed 2 and 3-variable K-maps. We can now create a 4-variable map in the

R.M.D. ENGINEERING COLLEGE R.S.M. Nagar, Kavaraipettai

Definitions. 03 Logic networks Boolean algebra. Boolean set: B 0,

Literal Cost F = BD + A B C + A C D F = BD + A B C + A BD + AB C F = (A + B)(A + D)(B + C + D )( B + C + D) L = 10

Combinational Logic Circuits

1. Fill in the entries in the truth table below to specify the logic function described by the expression, AB AC A B C Z

Review. EECS Components and Design Techniques for Digital Systems. Lec 05 Boolean Logic 9/4-04. Seq. Circuit Behavior. Outline.

Transcription:

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

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

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

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

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

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

Outline Introduction Two-level Logic Synthesis Multi-level Logic Synthesis Sequential Logic Synthesis CSE241 L5 Synthesis.7 Kahng & 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 I1 I2 F = A B O1 O2 CSE241 L5 Synthesis.8 Kahng & 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 CSE241 L5 Synthesis.9 Kahng & Cichy, UCSD 2003

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

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

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

Cube Representation Slide courtesy of Devadas, et. al CSE241 L5 Synthesis.13 Kahng & 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 CSE241 L5 Synthesis.14 Kahng & Cichy, UCSD 2003

Sum-of-products (SOP) 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. CSE241 L5 Synthesis.15 Kahng & 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 CSE241 L5 Synthesis.16 Kahng & 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 Not covered a CSE241 L5 Synthesis.17 Kahng & Cichy, UCSD 2003

Quine-McCluskey Method We want to find a minimum prime and irredundant cover for a given function. Prime cover leads to min number of inputs to each product term. Min irredundant cover leads to min number of product terms. Quine-McCluskey (QM) method (1960 s) finds a minimum prime and irredundant cover. Step 1: List all minterms of on-set: O(2^n) n = #inputs Step 2: Find all primes: O(3^n) n = #inputs Step 3: Construct minterms vs primes table Step 4: Find a min set of primes that covers all the minterms: O(2^m) m = #primes CSE241 L5 Synthesis.18 Kahng & 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 CSE241 L5 Synthesis.19 Kahng & 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. primes b c a b a c b c CSE241 L5 Synthesis.20 Kahng & 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 c b c a b c X a b c X X a b c X X a b c X X a b c X CSE241 L5 Synthesis.21 Kahng & 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 c b c a b c X a b c X X a b c X X a b c X X a b c X Essential primes CSE241 L5 Synthesis.22 Kahng & 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); CSE241 L5 Synthesis.23 Kahng & Cichy, UCSD 2003

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

Outline Introduction Two-level Logic Synthesis Multi-level Logic Synthesis CSE241 L5 Synthesis.25 Kahng & 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: Two-level logic is good for control logic Multi-level logic is good for datapath or random logic CSE241 L5 Synthesis.26 Kahng & 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 CSE241 L5 Synthesis.27 Kahng & Cichy, UCSD 2003

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

Modern Approach to Logic Optimization Divide logic optimization into two subproblems: Technology-independent optimization - determine overall logic structure - estimate costs (mostly) independent of technology - simplified cost modeling 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 CSE241 L5 Synthesis.29 Kahng & Cichy, UCSD 2003

Technology-Independent Optimization Simplified cost models Area = sum of factored form literals in all nodes Number of product terms is not a good measure of area in multilevel 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 CSE241 L5 Synthesis.30 Kahng & Cichy, UCSD 2003

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

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

Summary of Typical Recipe for TI Optimization Propagate constants Simplify: two-level minimization at Boolean network node Decomposition Local Boolean optimizations Boolean techniques exploit Boolean identities (e.g., a a = 0) Consider f = a b + a c + b a + b c + c a + c b Algebraic factorization procedures f = a (b + c ) + a (b + c) + b c + c b Boolean factorization produces f = (a + b + c) (a + b + c ) Slide courtesy of Keutzer CSE241 L5 Synthesis.33 Kahng & 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 Discrete resizing Cloning Fanout optimization (buffering) Logic restructuring Slide courtesy of Keutzer CSE241 L5 Synthesis.34 Kahng & Cichy, UCSD 2003

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

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

Tree Covering Algorithm Transform netlist and libraries into canonical forms 2-input NANDs and inverters Visit each node in BFS from inputs to outputs Find all candidate matches at each node N - Match is found by comparing topology only (no need to compare functions) 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 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 CSE241 L5 Synthesis.37 Kahng & Cichy, UCSD 2003

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

Elements of a library - 1 Element/Area Cost Tree Representation (normal form) INVERTER 2 NAND2 3 NAND3 4 NAND4 5 Slide courtesy of Keutzer CSE241 L5 Synthesis.39 Kahng & Cichy, UCSD 2003

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Discrete Resizing a b a b? A 0.035 d e f 0.2 0.2 0.3 d 0.05 0.04 0.03 0.02 0.01 0 0 0.2 0.4 0.6 0.8 1 load A B C a b C 0.026 Note that some arrival and required times become invalid DAC-2002, Physical Chip Implementation CSE241 L5 Synthesis.59 Kahng & Cichy, UCSD 2003

Cloning d 0.05 0.04 0.03 0.02 0.01 0 0 0.2 0.4 0.6 0.8 1 load A B C d 0.2 d a b? e f g h 0.2 0.2 0.2 0.2 a b A B e f g h Note that loads at a, b increase DAC-2002, Physical Chip Implementation CSE241 L5 Synthesis.60 Kahng & Cichy, UCSD 2003

Buffering d 0.05 0.04 0.03 0.02 0.01 0 0 0.2 0.4 0.6 0.8 1 load A B C a b? d e f g h 0.2 0.2 0.2 0.2 0.2 a b B 0.1 B d e 0.2 0.2 f g h 0.2 0.2 0.2 DAC-2002, Physical Chip Implementation CSE241 L5 Synthesis.61 Kahng & Cichy, UCSD 2003

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

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

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