ECE260B CSE241A Winter Logic Synthesis

Similar documents
CSE241 VLSI Digital Circuits UC San Diego

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

L3: Representations of functions

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

L2: Design Representations

CS8803: Advanced Digital Design for Embedded Hardware

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

Chapter 3. Gate-Level Minimization. Outlines

ELCT201: DIGITAL LOGIC DESIGN

ECE 3060 VLSI and Advanced Digital Design

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

Lecture Outline. Adam Teman, 2018

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

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

ELCT201: DIGITAL LOGIC DESIGN

Digital VLSI Design. Lecture 5: Logic Synthesis

Design of Framework for Logic Synthesis Engine

Chapter 6: Multilevel Combinational Circuits. Name: Lương Văn Minh No. :

Logic Synthesis and Verification

Combinational Logic Circuits

Specifying logic functions

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

COE 561 Digital System Design & Synthesis Introduction

IMPLEMENTATION DESIGN FLOW

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

ABC basics (compilation from different articles)

ECE380 Digital Logic

Lecture (05) Boolean Algebra and Logic Gates

Combinational Logic & Circuits

CS470: Computer Architecture. AMD Quad Core

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

Boolean Algebra and Logic Gates

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis

Simplification of Boolean Functions

Introduction. Sungho Kang. Yonsei University

IT 201 Digital System Design Module II Notes

COPYRIGHTED MATERIAL INDEX

Boolean Representations and Combinatorial Equivalence

Digital Logic Design. Outline

ECE 595Z Digital Systems Design Automation

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

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

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

Combinational Circuits

ECE 3060 VLSI and Advanced Digital Design

QUESTION BANK FOR TEST

2.1 Binary Logic and Gates

END-TERM EXAMINATION

Unit 2: High-Level Synthesis

Chapter 3 Simplification of Boolean functions

Very Large Scale Integration (VLSI)

Gate Level Minimization Map Method

ece5745-pla-notes.txt

(Refer Slide Time 6:48)

Gate-Level Minimization

Gate-Level Minimization

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

Digital Circuits ECS 371

Combinational Logic Circuits Part III -Theoretical Foundations

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

Homework 3 Handout 19 February 18, 2016

VLSI Test Technology and Reliability (ET4076)

TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS

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

Additional Slides to De Micheli Book

CMPE223/CMSE222 Digital Logic

Representations of Terms Representations of Boolean Networks

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

Experiment 4 Boolean Functions Implementation

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

Boolean Algebra. BME208 Logic Circuits Yalçın İŞLER

Combinational Devices and Boolean Algebra

Chapter 2 Combinational

Optimized Implementation of Logic Functions

R07

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

Introduction to synthesis. Logic Synthesis

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

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

LSN 4 Boolean Algebra & Logic Simplification. ECT 224 Digital Computer Fundamentals. Department of Engineering Technology

Experiment 3: Logic Simplification

10EC33: DIGITAL ELECTRONICS QUESTION BANK

Topics. Midterm Finish Chapter 7

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

A New Algorithm to Create Prime Irredundant Boolean Expressions

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

Bawar Abid Abdalla. Assistant Lecturer Software Engineering Department Koya University

Combinational Logic Use the Boolean Algebra and the minimization techniques to design useful circuits No feedback, no memory Just n inputs, m outputs

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

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

Code No: R Set No. 1

McGILL UNIVERSITY Electrical and Computer Engineering Department MIDTERM EXAM

Chapter 8. 8 Minimization Techniques. 8.1 Introduction. 8.2 Single-Output Minimization Design Constraints

Transcription:

ECE260B CSE241A Winter 2007 Logic Synthesis Website: /courses/ece260b-w07 ECE 260B CSE 241A Static Timing Analysis 1 Slides courtesy of Dr. Cho Moon

Introduction 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 ECE 260B CSE 241A Static Timing Analysis 2

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 ECE 260B CSE 241A Static Timing Analysis 3 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! ECE 260B CSE 241A Static Timing Analysis 4

Combinational Logic Synthesis netlist 2-level Logic opt Library Logic Synthesis tech independent tech dependent multilevel Logic opt netlist Library ECE 260B CSE 241A Static Timing Analysis 5 Slide courtesy of Devadas, et. al

Outline Introduction Two-level Logic Synthesis Multi-level Logic Synthesis ECE 260B CSE 241A Static Timing Analysis 6

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. O1 = I1 I2 + I1 I2 I1 I2 O2 = I1 I2 O1 O2 ECE 260B CSE 241A Static Timing Analysis 7

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 ECE 260B CSE 241A Static Timing Analysis 8

Literals ECE 260B CSE 241A Static Timing Analysis 9 Slide courtesy of Devadas, et. al

Boolean Formulas ECE 260B CSE 241A Static Timing Analysis 10 Slide courtesy of Devadas, et. al

Logic Functions: ECE 260B CSE 241A Static Timing Analysis 11 Slide courtesy of Devadas, et. al

Cube Representation ECE 260B CSE 241A Static Timing Analysis 12 Slide courtesy of Devadas, et. al

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. ECE 260B CSE 241A Static Timing Analysis 13

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 ECE 260B CSE 241A Static Timing Analysis 14

Irredundant Cube A cube c 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 a ECE 260B CSE 241A Static Timing Analysis 15 b Not covered

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 ECE 260B CSE 241A Static Timing Analysis 16

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 ECE 260B CSE 241A Static Timing Analysis 17

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 ECE 260B CSE 241A Static Timing Analysis 18

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 ECE 260B CSE 241A Static Timing Analysis 19

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 ECE 260B CSE 241A Static Timing Analysis 20

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); } ECE 260B CSE 241A Static Timing Analysis 21

ESPRESSO ILLUSTRATED Reduce Expand Irredundant ECE 260B CSE 241A Static Timing Analysis 22

Outline Introduction Two-level Logic Synthesis Multi-level Logic Synthesis ECE 260B CSE 241A Static Timing Analysis 23

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 ECE 260B CSE 241A Static Timing Analysis 24

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 cost netlist consisting of the gates from the target libraries such that design constraints are satisfied ECE 260B CSE 241A Static Timing Analysis 25

Optimization Cost Criteria The accepted optimization criteria for multi-level logic are to minimize some function of: 1. Area occupied by the logic gates and interconnect (approximated by literals = transistors in technology independent optimization) 2. Critical path delay of the longest path through the logic 3. Testability of the circuit, measured in terms of the percentage of faults covered by a specified set of test vectors for an approximate fault model (e.g. single or multiple stuck-at faults) 4. Power consumed by the logic gates 5. Noise Immunity 6. Wireability while simultaneously satisfying upper or lower bound constraints placed on these physical quantities ECE 260B CSE 241A Static Timing Analysis 26

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 ECE 260B CSE 241A Static Timing Analysis 27 Slide courtesy of Keutzer

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 ) ECE 260B CSE 241A Static Timing Analysis 28 Slide courtesy of Brayton

Network Representation Boolean network: ECE 260B CSE 241A Static Timing Analysis 29

Node Representation: Sum of Products (SOP) Example: abc +a bd+b d +b e f (sum of cubes) Advantages: easy to manipulate and minimize many algorithms available (e.g. AND, OR, TAUTOLOGY) two-level theory applies Disadvantages: Not representative of logic complexity. For example f=ad+ae+bd+be+cd+ce f =a b c +d e These differ in their implementation by an inverter. hence not easy to estimate logic; difficult to estimate progress during logic manipulation ECE 260B CSE 241A Static Timing Analysis 30

Factored Forms Example: (ad+b c)(c+d (e+ac ))+(d+e)fg Advantages good representative of logic complexity f=ad+ae+bd+be+cd+ce f =a b c +d e f=(a+b+c)(d+e) in many designs (e.g. complex gate CMOS) the implementation of a function corresponds directly to its factored form good estimator of logic implementation complexity doesn t blow up easily Disadvantages not as many algorithms available for manipulation hence usually just convert into SOP before manipulation ECE 260B CSE 241A Static Timing Analysis 31

Factored Forms Note: literal count transistor count area (however, area also depends on wiring) ECE 260B CSE 241A Static Timing Analysis 32

Factored Forms Definition : a factored form can be defined recursively by the following rules. A factored form is either a product or sum where: a product is either a single literal or product of factored forms a sum is either a single literal or sum of factored forms A factored form is a parenthesized algebraic expression. In effect a factored form is a product of sums of products or a sum of products of sums Any logic function can be represented by a factored form, and any factored form is a representation of some logic function. ECE 260B CSE 241A Static Timing Analysis 33

Factored Forms Factored forms cam be graphically represented as labeled trees, called factoring trees, in which each internal node including the root is labeled with either + or, and each leaf has a label of either a variable or its complement. Example: factoring tree of ((a +b)cd+e)(a+b )+e ECE 260B CSE 241A Static Timing Analysis 34

Reduced Ordered BDDs like factored form, represents both function and complement like network of muxes, but restricted since controlled by primary input variables - not really a good estimator for implementation complexity given an ordering, reduced BDD is canonical, hence a good replacement for truth tables for a good ordering, BDDs remain reasonably small for complicated functions (e.g. not multipliers) manipulations are well defined and efficient true support (dependency) is displayed ECE 260B CSE 241A Static Timing Analysis 35

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 ECE 260B CSE 241A Static Timing Analysis 36

More Technology-Independent Optimization More technology-independent optimization tricks: Substitution g = a+b f = a+bc f = g(a+c) 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 ECE 260B CSE 241A Static Timing Analysis 37

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 procedures f = (a + b + c) (a + b + c ) ECE 260B CSE 241A Static Timing Analysis 38 Slide courtesy of Keutzer

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 ECE 260B CSE 241A Static Timing Analysis 39 Slide courtesy of Keutzer

Technology Mapping Input Output Technology independent, optimized logic network 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 ECE 260B CSE 241A Static Timing Analysis 40

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 ECE 260B CSE 241A Static Timing Analysis 41 Slide courtesy of Keutzer

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 ECE 260B CSE 241A Static Timing Analysis 42

Tree Covering Example Find an ``optimal (in area, delay, power) mapping of this circuit into the technology library (simple example below) ECE 260B CSE 241A Static Timing Analysis 43 Slide courtesy of Keutzer

Elements of a library - 1 Element/Area Cost Tree Representation (normal form) INVERTER 2 NAND2 3 NAND3 4 NAND4 5 ECE 260B CSE 241A Static Timing Analysis 44 Slide courtesy of Keutzer

Trivial Covering subject DAG 7 NAND2 (3) = 21 5 INV (2) = 10 Area cost 31 Can we do better with tree covering? ECE 260B CSE 241A Static Timing Analysis 45 Slide courtesy of Keutzer

Optimal tree covering - 1 3 2 2 3 ``subject tree ECE 260B CSE 241A Static Timing Analysis 46 Slide courtesy of Keutzer

Optimal tree covering - 2 3 8 2 2 3 5 ``subject tree ECE 260B CSE 241A Static Timing Analysis 47 Slide courtesy of Keutzer

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 ECE 260B CSE 241A Static Timing Analysis 48 Slide courtesy of Keutzer 1 NAND3 = 4

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 ECE 260B CSE 241A Static Timing Analysis 49 Slide courtesy of Keutzer

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 ECE 260B CSE 241A Static Timing Analysis 50 1 AO21 4 + subtree 1 3 + subtree 2 2 Slide courtesy of Keutzer Area cost 9

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 ECE 260B CSE 241A Static Timing Analysis 51 Slide courtesy of Keutzer

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 Area cost 16 ECE 260B CSE 241A Static Timing Analysis 52 subtree 1 8 subtree 2 2 subtree 3 4 1 NAND3 4 Area cost 18 Slide courtesy of Keutzer NAND3

Optimal tree covering 5b 9 8 16 2 4 ``subject tree Label the root of the sub-tree with optimal match and cost ECE 260B CSE 241A Static Timing Analysis 53 Slide courtesy of Keutzer

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 Area cost 22 ECE 260B CSE 241A Static Timing Analysis 54 Slide courtesy of Keutzer

Optimal tree covering 6b 13 18 16 5 ``subject tree Label the root of the sub-tree with optimal match and cost ECE 260B CSE 241A Static Timing Analysis 55 Slide courtesy of Keutzer

Optimal tree covering - 7 Cover with ND2 or ND3 or ND4? ``subject tree ECE 260B CSE 241A Static Timing Analysis 56 Slide courtesy of Keutzer

Cover 1 - NAND2 Cover with ND2? 9 18 16 4 ``subject tree subtree 1 18 subtree 2 0 1 NAND2 3 ECE 260B CSE 241A Static Timing Analysis 57 Area cost 21 Slide courtesy of Keutzer

Cover 2 - NAND3 Cover with ND3? 9 4 ``subject tree ECE 260B CSE 241A Static Timing Analysis 58 subtree 1 9 subtree 2 4 subtree 3 0 1 NAND3 4 Slide courtesy of Keutzer Area cost 17

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 ECE 260B CSE 241A Static Timing Analysis 59 Slide courtesy of Keutzer

Optimal Cover was Cover 2 ND2 AOI21 ND3 INV ND3 ``subject tree ECE 260B CSE 241A Static Timing Analysis 60 INV 2 ND2 3 2 ND3 8 AOI21 4 Slide courtesy of Keutzer Area cost 17

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 ECE 260B CSE 241A Static Timing Analysis 61

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 ECE 260B CSE 241A Static Timing Analysis 62

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 ECE 260B CSE 241A Static Timing Analysis 63 DAC-2002, Physical Chip Implementation

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 ECE 260B CSE 241A Static Timing Analysis 64 DAC-2002, Physical Chip Implementation

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 0.2 e 0.2 a f? 0.2 b g 0.2 h 0.2 B 0.1 B d e 0.2 0.2 f g h 0.2 0.2 0.2 ECE 260B CSE 241A Static Timing Analysis 65 DAC-2002, Physical Chip Implementation

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 ECE 260B CSE 241A Static Timing Analysis 66 c Late input signals Slides courtesy of Keutzer c d

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 ECE 260B CSE 241A Static Timing Analysis 67 Slides courtesy of Keutzer

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? ECE 260B CSE 241A Static Timing Analysis 68

Homework Wednesday 1/17 (1) Consider the function: f: B 3 -> B, whose onset is the following: {xyz} = {000, 110, 101, 100, 111} List all primes Find the prime and irredundant cover for the function (2) Formulate a solution to the Quine-McCluskey method that performs better than the greedy solution discussed in the lecture. Accurate, fast timing engine with incremental analysis capability. ECE 260B CSE 241A Static Timing Analysis 69