(a) v 1. v a. v i. v s. (b)

Similar documents
a b v a v b v c v = a d + bd +c d +ae r = p + a 0 s = r + b 0 4 ac + ad + bc + bd + e 5 = a + b = q 0 c + qc 0 + qc (a) s v (b)

COMP108 Algorithmic Foundations

CSC Design and Analysis of Algorithms. Example: Change-Making Problem

Paths. Connectivity. Euler and Hamilton Paths. Planar graphs.

b. How many ternary words of length 23 with eight 0 s, nine 1 s and six 2 s?

12. Traffic engineering

12/3/12. Outline. Part 10. Graphs. Circuits. Euler paths/circuits. Euler s bridge problem (Bridges of Konigsberg Problem)

Outline. Circuits. Euler paths/circuits 4/25/12. Part 10. Graphs. Euler s bridge problem (Bridges of Konigsberg Problem)

5/9/13. Part 10. Graphs. Outline. Circuits. Introduction Terminology Implementing Graphs

Algorithmic and NP-Completeness Aspects of a Total Lict Domination Number of a Graph

Math 61 : Discrete Structures Final Exam Instructor: Ciprian Manolescu. You have 180 minutes.

V={A,B,C,D,E} E={ (A,D),(A,E),(B,D), (B,E),(C,D),(C,E)}

CSE 373: More on graphs; DFS and BFS. Michael Lee Wednesday, Feb 14, 2018

Outline. 1 Introduction. 2 Min-Cost Spanning Trees. 4 Example

ECE 407 Computer Aided Design for Electronic Systems. Circuit Modeling and Basic Graph Concepts/Algorithms. Instructor: Maria K. Michael.

Graph Isomorphism. Graphs - II. Cayley s Formula. Planar Graphs. Outline. Is K 5 planar? The number of labeled trees on n nodes is n n-2

Module graph.py. 1 Introduction. 2 Graph basics. 3 Module graph.py. 3.1 Objects. CS 231 Naomi Nishimura

V={A,B,C,D,E} E={ (A,D),(A,E),(B,D), (B,E),(C,D),(C,E)}

Graphs. CSC 1300 Discrete Structures Villanova University. Villanova CSC Dr Papalaskari

Graphs. Graphs. Graphs: Basic Terminology. Directed Graphs. Dr Papalaskari 1

CS200: Graphs. Graphs. Directed Graphs. Graphs/Networks Around Us. What can this represent? Sometimes we want to represent directionality:

Weighted graphs -- reminder. Data Structures LECTURE 15. Shortest paths algorithms. Example: weighted graph. Two basic properties of shortest paths

Announcements. Not graphs. These are Graphs. Applications of Graphs. Graph Definitions. Graphs & Graph Algorithms. A6 released today: Risk

CS61B Lecture #33. Administrivia: Autograder will run this evening. Today s Readings: Graph Structures: DSIJ, Chapter 12

Similarity Search. The Binary Branch Distance. Nikolaus Augsten.

0.1. Exercise 1: the distances between four points in a graph

An undirected graph G = (V, E) V a set of vertices E a set of unordered edges (v,w) where v, w in V

Planar Upward Drawings

CSE 373. Graphs 1: Concepts, Depth/Breadth-First Search reading: Weiss Ch. 9. slides created by Marty Stepp

Minimum Spanning Trees

Cycles and Simple Cycles. Paths and Simple Paths. Trees. Problem: There is No Completely Standard Terminology!

Exam 1 Solution. CS 542 Advanced Data Structures and Algorithms 2/14/2013

Constructive Geometric Constraint Solving

CS 241 Analysis of Algorithms

A Simple Code Generator. Code generation Algorithm. Register and Address Descriptors. Example 3/31/2008. Code Generation

CSE303 - Introduction to the Theory of Computing Sample Solutions for Exercises on Finite Automata

, each of which is a tree, and whose roots r 1. , respectively, are children of r. Data Structures & File Management

temporally share the same FPGA Large circuit PI s micro-cycle one user cycle PO s

Register Allocation and Binding for Low Power. Jui-Ming Chang and Massoud Pedram. function of signal statistics and correlations, and hence is

Fundamental Algorithms for System Modeling, Analysis, and Optimization

Register Allocation. How to assign variables to finitely many registers? What to do when it can t be done? How to do so efficiently?

ECE COMBINATIONAL BUILDING BLOCKS - INVEST 13 DECODERS AND ENCODERS

Chapter 16. 1) is a particular point on the graph of the function. 1. y, where x y 1

Why the Junction Tree Algorithm? The Junction Tree Algorithm. Clique Potential Representation. Overview. Chris Williams 1.

MULTIPLE-LEVEL LOGIC OPTIMIZATION II

Problem solving by search

Clustering for Processing Rate Optimization

Formal Concept Analysis

Announcements. These are Graphs. This is not a Graph. Graph Definitions. Applications of Graphs. Graphs & Graph Algorithms

Garnir Polynomial and their Properties

CIVL 8/ D Boundary Value Problems - Rectangular Elements 1/7

Implication Graphs and Logic Testing

Outline. Computer Science 331. Computation of Min-Cost Spanning Trees. Costs of Spanning Trees in Weighted Graphs

CS553 Lecture Register Allocation 1

The University of Sydney MATH2969/2069. Graph Theory Tutorial 5 (Week 12) Solutions 2008

CS 461, Lecture 17. Today s Outline. Example Run

LEO VAN IERSEL TU DELFT

5/7/13. Part 10. Graphs. Theorem Theorem Graphs Describing Precedence. Outline. Theorem 10-1: The Handshaking Theorem

(2) If we multiplied a row of B by λ, then the value is also multiplied by λ(here lambda could be 0). namely

GREEDY TECHNIQUE. Greedy method vs. Dynamic programming method:

Present state Next state Q + M N

Section 10.4 Connectivity (up to paths and isomorphism, not including)

Basic Polyhedral theory

COMPLEXITY OF COUNTING PLANAR TILINGS BY TWO BARS

Numbering Boundary Nodes

Integration Continued. Integration by Parts Solving Definite Integrals: Area Under a Curve Improper Integrals

CSCI Compiler Design

Multi-Section Coupled Line Couplers

m2 m3 m1 (a) (b) (c) n2 n3

New challenges on Independent Gate FinFET Transistor Network Generation

Quartets and unrooted level-k networks

NP-Completeness. CS3230 (Algorithm) Traveling Salesperson Problem. What s the Big Deal? Given a Problem. What s the Big Deal? What s the Big Deal?

Weighted Matching and Linear Programming

More Foundations. Undirected Graphs. Degree. A Theorem. Graphs, Products, & Relations

Seven-Segment Display Driver

Graph Contraction and Connectivity

Prefix-Free Regular-Expression Matching

CSE 373: AVL trees. Warmup: Warmup. Interlude: Exploring the balance invariant. AVL Trees: Invariants. AVL tree invariants review

Instructions for Section 1

A 4-state solution to the Firing Squad Synchronization Problem based on hybrid rule 60 and 102 cellular automata

Metodologie di progetto HW Technology Mapping. Last update: 19/03/09

Multipoint Alternate Marking method for passive and hybrid performance monitoring

Final Exam Solutions

XML and Databases. Outline. Recall: Top-Down Evaluation of Simple Paths. Recall: Top-Down Evaluation of Simple Paths. Sebastian Maneth NICTA and UNSW

Self-Adjusting Top Trees

Multi-Way VLSI Circuit Partitioning Based on Dual Net Representation

Design Optimization Based on Diagnosis Techniques

HIGHER ORDER DIFFERENTIAL EQUATIONS

TOPIC 5: INTEGRATION

Computational Biology, Phylogenetic Trees. Consensus methods

FSA. CmSc 365 Theory of Computation. Finite State Automata and Regular Expressions (Chapter 2, Section 2.3) ALPHABET operations: U, concatenation, *

EE1000 Project 4 Digital Volt Meter

QUESTIONS BEGIN HERE!

WORKSHOP 6 BRIDGE TRUSS

1 Introduction to Modulo 7 Arithmetic

Technology Mapping Method for Low Power Consumption and High Performance in General-Synchronous Framework

Outline. Binary Tree

Ch 1.2: Solutions of Some Differential Equations

I. The Connection between Spectroscopy and Quantum Mechanics

minimize c'x subject to subject to subject to

Transcription:

Outlin RETIMING Struturl optimiztion mthods. Gionni D Mihli Stnford Unirsity Rtiming. { Modling. { Rtiming for minimum dly. { Rtiming for minimum r. Synhronous Logi Ntwork Synhronous Logi Ntwork Synhronous logi ntwork: { Vrils. { Booln qutions. i d s { Synhronous dly nnottion. () Synhronous ntwork grph: { Vrtis $ qutions $ I/O, gts. { Edgs $ dpndnis $ nts. i 2 () d s { Wights $ synh. dlys $ rgistrs.

(n) (n) (n) d (n) (n) (n) s (n) = i (n) i (n;) = i (n;) i (n;2) = (n) (n) = (n) + d (n;) = d (n) (n;) + d (n) (n) = (n) = (n;) Synhronous Logi Ciruit Modling Stt-sd modl: { Trnsition digrms or tls. { Expliit notion of stt. { Impliit notion of r nd dly. = i i@ = i@ i@2 = d = + d@ = d @ + d = s = @ Struturl modl: { Synhronous logi ntwork. { Impliit notion of stt. { Expliit notion of r nd dly. Approhs to synhronous logi optimiztion Optimiz omintionl logi only. Optimiz rgistr position only: { Rtiming. Optimiz orll iruit: { Priphrl rtiming. { Synhronous trnsformtions: Algri. Sprt rgistrs from omintionl logi Optimiz omintionl logi y trnsformtions: { Modify qutions. { Modify grph strutur. Connt rgistrs k into th ntwork: { Good huristi. { Limitd y th prtitioning strtgy. Booln.

Rtiming Mo rgistr position. Do not modify omintionl logi. d x d x Prsr ntwork strutur: { Modify wights. () x x () { Do not modify grph strutur. () (d) Assumptions Rtiming Vrtx dly is onstnt: Glol optimiztion thniqu [Lisrson]. { No fnout dly dpndny. Chngs rgistr positions: { ts r: hngs rgistr ount. { ts yl-tim: hngs pth dlys twn rgistr pirs. Grph topology is inrint: { No logi trnsformtions. Synhronous implmnttion: { Cyls h positi wights. { Edgs h non-ngti wights. Soll in polynomil tim. Considr topologil pths: { No fls pth nlysis.

Rtiming Rtiming of rtx: f { Intgr. { Rgistrs mod from output to input. Rtiming of ntwork: { Vtor of rtx rtiming. f A fmily of quilnt ntworks r spid y: { Th originl ntwork. { A rtiming tor. Dnitions: Dnitions nd proprtis { w( i j ) { wight of dg ( i j ). { ( i ::: j ) { pth from i to j. { d( i ::: j ){ pth dly from i to j. 2 u r= r = RETIMING of n EDGE PATH 2 u w(u,) = w(u,) = 2 til 2 hd Proprtis: { Rtiming of n dg ( i j ): w ij = w ij + r j ; r i. w(pth) = 2 CYCLE 2 { Rtiming of pth ( i ::: j ): til w(yl) = hd w( i ::: j ) = w( i ::: j ) + r j ; r i : { Cyl wights r inrint.

Lgl rtiming Rnd nlysis Clok priod. Lst rgistr pth: Rtiming tor suh tht: { No dg wight is ngti: w ij = w ij + r j ; r i 8i j. { Eh pth ( i ::: j ) with d( i ::: j ) > hs t lst on rgistr: w( i ::: j ) = w( i ::: j ) + r j ; r i 8i j. Ft: { Originl grph hs no yls with wight ) nw grph hs no yls with wight. { W ( i j ) = min w( i ::: j ). { Or ll pths twn i nd j. Critil dly: { D( i j ) = mx d( i ::: j ) { Or ll th pths from i to j with wight W ( i j ). Thr xists rtx pir i j whos D( i j ) ounds th yl-tim. Minimum yl-tim rtiming prolm f Find minimum lu of th lok priod suh tht thr xist rtiming tor whr: { r i ; r j w ij 8( i j ) 2 E { r i ; r j W ( i j ) ; 8 i j jd( i j ) >. Vrtis:. Pths: ( ) nd ( ). W ( ) = 2 nd D( ) = 6. Solution: { Gin lu of : sol linr onstrints. mthods: Bllmn-Ford or drit. MILP. Rlxtion.

Minimum yl-tim rtiming lgorithm Comput ll-pir W ( i j ) nd D( i j ). { Wrshll-Floyd lgorithm ( O(V ) ). f Sort th lmnts of D in drsing ordr. Binry srh for in D( i j ) suh tht: { Thr xist lgl rtiming. { Bllmn-Ford lgorithm ( O(V ) ). Rmrks: { Rsult is glol optimum. { Orll omplxity is O(V logv ). Constrints (rst typ): { r ; r or quilntly r r ; { r ; r or quilntly r r ; { = Sort lmnts of D: f { ( 2 26 24 2 2 2 9 6 4 2 9 6 ). 2 Slt: = 9: { PASS. Slt: = : { PASS. Slt: < : { FAIL. Constrints (sond typ): { r ; r 2 ; or quilntly r r ; { r ; r f ; or quilntly r f r + { r f ; r g ; or quilntly r g r f + { r g ; r f 2 ; or quilntly r f r g ; { r g ; r ; or quilntly r r g ; 2

= f Rlxtion-sd lgorithm Rtionl Look for pths with xssi dly. f Mk thm shortr y pulling losr th trminl rgistr. Solutions: { ;[222] T (LP from ). { Som othr pths my om too long. { Thos pths whos til hs n mod. Us n itrti pproh. { ;[222] T (Equilnt solution). Rlxtion-sd lgorithm = Dn rtx dt rdy tim: { Totl dly from rgistr oundry. () f f (2) Itrti pproh: f f { Find rtis with dt rdy tim >. () (2) { Rtim ths rtis y. f f Proprtis: () (2) { Finds lgl rtiming in t most jv j itrtions, if on xists.

Dt-rdy tims: { t = t = t = t d = t = t f = t g = 24 t h = 24. Rtim: ft f t g t h g y. Dt-rdy tims: { t = t = t = t d = t = t f = t g = 4 t h = 4. Rtim: { ft t g t h g y. Dt-rdy tims: { t = t = t = t d = t = t f = t g = t h =, { TIMING FEASIBLE NETWORK! Minimum r rtiming prolm Find rtiming tor tht minimizs th numr of rgistrs. Simpl r modling: { Ery pos.-wightd dg! rgistr. { Totl rgistr r ost quls totl of wights. Rgistr shring modl: { Ery st of positily-wightd dgs with ommon til! shift-rgistr. { Rgistr r ost quls mximum of wights on outgoing dgs. Minimum r rtiming simpl modl () Rgistr rition t rtx : { r (indgr() ; outdgr()). () Totl r rition: { P r (indgr() ; outdgr()). () Ar minimiztion prolm: { min X 2V r (indgr() ; outdgr()). { s.t. r i ; r j w( i j ) for ry ( i j ).

min Minimum r rtiming undr yl tim onstrint { X r (indgr() ; outdgr()). s.t. 2V { r i ; r j w( i j ) for ry ( i j ). { r i ; r j W ( i j ) ; 8 i j jd( i j ) >. Minimum r rtiming lgorithm Linr progrm. Trnsform into mthing prolm: { Edmonds-Krp lgorithm. { Polynomil tim. Rmrk: { Rgistr shring modl n trnsformd into th simpl modl. { Sm solution lgorithms. Summry of rtiming Squntil optimiztion thniqu for: { Cyl tim or rgistr r. Applil to: { Synhronous logi modls. { Arhitturl dt-pth modls: Rsours with dlys. Ext lgorithm in polynomil tim. Prolms: { Dly modling. { Ntwork grnulrity.