EDA (CS286.5b) Day 2 Covering. Why covering now? Nice/simple cost model problem can be solved well (somewhat clever solution) general/powerful technique.

Slides:



Advertisements
Similar presentations
Types of Algorithms.
Advertisements

Algorithms + L. Grewe.
Overview What is Dynamic Programming? A Sequence of 4 Steps
ECE 667 Synthesis and Verification of Digital Systems
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: March 4, 2008 Placement (Intro, Constructive)
Technology Mapping.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 23, 2008 Covering.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day8: October 18, 2000 Computing Elements 1: LUTs.
EDA (CS286.5b) Day 5 Partitioning: Intro + KLFM. Today Partitioning –why important –practical attack –variations and issues.
EDA (CS286.5b) Day 6 Partitioning: Spectral + MinCut.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 11: February 14, 2007 Compute 1: LUTs.
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 16: March 23, 2009 Covering.
CS294-6 Reconfigurable Computing Day 15 October 13, 1998 LUT Mapping.
EDA (CS286.5b) Day 7 Placement (Simulated Annealing) Assignment #1 due Friday.
Technology Mapping 1 Outline –What is Technology Mapping? –Rule-Based Mapping –Tree Pattern Matching Goal –Understand technology mapping –Understand mapping.
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
COE 561 Digital System Design & Synthesis Library Binding Dr. Muhammad Elrabaa Computer Engineering Department King Fahd University of Petroleum & Minerals.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
EDA (CS286.5b) Day 9 Simultaneous Optimization (Cover+Place, Area+Delay)
CS 206 Introduction to Computer Science II 10 / 16 / 2009 Instructor: Michael Eckmann.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 27, 2008 Clustering (LUT Mapping, Delay) Please work preclass example.
Technology Mapping Outline Goal What is Technology Mapping?
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 17: March 30, 2009 Clustering (LUT Mapping, Delay)
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
1 VLSI CAD Flow: Logic Synthesis, Lecture 13 by Ajay Joshi (Slides by S. Devadas)
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
Slides for “Data Mining” by I. H. Witten and E. Frank.
VLSI Backend CAD Konstantin Moiseev – Intel Corp. & Technion Shmuel Wimer – Bar Ilan Univ. & Technion.
Analysis of Algorithms
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 26, 2015 Covering Work preclass exercise.
Shantanu Dutt ECE Dept. UIC
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
CSC401: Analysis of Algorithms CSC401 – Analysis of Algorithms Chapter Dynamic Programming Objectives: Present the Dynamic Programming paradigm.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Christopher Moh 2005 Competition Programming Analyzing and Solving problems.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 3: January 12, 2004 Clustering (LUT Mapping, Delay)
Sorting: Implementation Fundamental Data Structures and Algorithms Klaus Sutner February 24, 2004.
ICS 252 Introduction to Computer Design Lecture 12 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 20, 2010 Universality, Gates, Logic Work Preclass Exercise.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
Logic synthesis flow Technology independent mapping –Two level or multilevel optimization to optimize a coarse metric related to area/delay Technology.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 18, 2012 Universality, Gates, Logic Work Preclass Exercise.
Static Timing Analysis
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 11: January 31, 2005 Compute 1: LUTs.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 2: September 28, 2005 Covering.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
COE 360 Principles of VLSI Design Delay. 2 Definitions.
CS137: Electronic Design Automation
Types of Algorithms.
CS 3343: Analysis of Algorithms
Types of Algorithms.
Brute Force Approaches
ESE535: Electronic Design Automation
Sungho Kang Yonsei University
ECE 667 Synthesis and Verification of Digital Systems
Technology Mapping I based on tree covering
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
Types of Algorithms.
CS137: Electronic Design Automation
Major Design Strategies
Fast Min-Register Retiming Through Binary Max-Flow
Major Design Strategies
CS137: Electronic Design Automation
Presentation transcript:

EDA (CS286.5b) Day 2 Covering

Why covering now? Nice/simple cost model problem can be solved well (somewhat clever solution) general/powerful technique show off special cases (harder/easier cases) show off things that make hard show off bounding first assignment based on exploiting ideas

Problem Implement a “gate-level” netlist in terms of some library of primitives General –easy to change technology –easy to experiment with library requirements (benefits of new cells…)

Input netlist library represent both in normal form –nand gate –inverters

Elements of a library - 1 INVERTER2 NAND23 NAND34 NAND45 Element/Area CostTree Representation (normal form) Example: Keutzer

Elements of a library - 2 AOI21 4 AOI22 5 Element/Area Cost Tree Representation (normal form)

Input Circuit Netlist ``subject DAG’’

Problem statement into this library Find an ``optimal’’ (in area, delay, power) mapping of this circuit (DAG)

What’s the problem? Trivial Covering subject DAG 7NAND2 (3) = 21 5INV (2) = 10 Area cost 31

Cost Model: Area Area in gates or, at least, can pick an area/gate –so proportional to gates e.g. –Standard Cell design –Standard Cell/route over cell –gate array

Standard Cell Area invnand3AOI4invnor3Inv All cells uniform height Width of channel determined by routing Cell area Width of channel fairly constant?

Cost Model: Delay Delay in gates –at least assignable to gates Twire << Tgate Twire ~=constant –delay exclusively/predominantly in gates Gates have Cout, Cin lump capacitance for output drive delay ~ Tgate +  Cin Cwire << Cin or Cwire can lump with Cout/Tgate

Cost Models Why do I show you models? –not clear there’s one “right” model –changes over time –you’re going to encounter many different kinds of problems –want you to see formulations so can critique and develop own –simple make problems tractable are suprisingly adequate –simple, at least, help bound solutions

Greedy work? Greedy = pick next locally “best” choice 2346

Greedy Problem What happens in the future (elsewhere in circuit) will determine what should be done at this point in the circuit. Can’t just pick best thing for now and be done.

Brute force? Pick a node (output) consider –all possible gates which may cover that node –branch on all inputs after cover –pick least cost node

Pick a Node

Brute force? Pick a node (output) consider –all possible gates which may cover that node –recurse on all inputs after cover –pick least cost node Explore all possible covers –can find optimum

Analyze brute force? Time? T(N) = Sigma(T(match)) * Sigma(T(inputs)) Say P patterns, linear time to match each –(can do better…) P-way branch at each node… …exponential

Structure inherent in problem to exploit?

There are only N unique nodes to cover!

Structure If subtree solutions do not depend on what happens outside of its subtree –separate tree –farther up tree Should only have to look at N nodes. Time(N) = N*P*T(match) –w/ P fixed/bounded, technically linear in N –w/ cleverness work isn’t P*T(match) at ever node

Idea Re-iterated Work from inputs Optimal solution to subproblem is contained in optimal, global solution Find optimal cover for each node Optimal cover: –examine all gates at this node –look at cost of gate and its inputs –pick least

Work front-to-back

Work Example (area) library

Work Example (area) library

Work Example (area) library

Work Example (area) library

Work Example (area) library

Work Example (area) library

Note There are nodes we cover which will not appear in final solution.

Dynamic Programming Solution Solution described is general instance of dynamic programming Require: –optimal solution to subproblems is optimal solution to whole problem –(all optimal solutions equally good) –divide-and-conquer gets same (finite/small) number of subproblems Same technique used for instruction selection

Delay Similar –Cost(node) = Delay(gate)+Max(Delay(input))

Trees vs. DAGs Optimal for trees –why? Area Delay

Not optimal for DAGs Why?

Not Optimal for DAGs (area) Cost(N)  Cost(gate) +  Cost(input nodes) think of sets cost is magnitude of set union Problem: minimum cost (magnitude) solution isn’t necessarily the best pick –get interaction between subproblems –subproblem optimum not global...

Not Optimal for DAGs Delay: –in fanout model, depends on problem you haven’t already solved (delay of node depends on number of uses)

What do people do? Cut DAGs at fanout nodes optimally solve resulting trees Area –guarantees covered once get accurate costs in covering trees, made “premature” assignment of nodes to trees Delay –know where fanout is

Power Objective/Model? Optimality?

Bounding Tree solution give bounds (esp. for delay) –single path, optimal covering for delay –(also make tree by replicating nodes at fanout points) no fanout cost give bounds –know you can’t do better delay bounds useful, too –know what you’re giving up for area –when delay matters

(Multiple Objectives?) Like to say, get delay, then area –won’t get minimum area for that delay –algorithm only keep best delay –…but best delay on off critical path piece not matter …could have accepted more delay there –don’t know if on critical path while building subtree –(iterate, keep multiple solutions)

Many more details... Implement well Combine criteria –(touch on some later) …see literature –(put some refs on web)

Today’s Big Ideas: Simple cost models problem formulation identifying structure in the problem special structure characteristics that make problems hard bounding solutions