Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)1 ELEC 7770 Advanced VLSI Design Spring 2014 Constraint Graph and Retiming Solution Vishwani.

Slides:



Advertisements
Similar presentations
Introduction to Algorithms 6.046J/18.401J/SMA5503
Advertisements

Graphs and Finding your way in the wilderness
ECE 667 Synthesis and Verification of Digital Circuits
ECE Longest Path dual 1 ECE 665 Spring 2005 ECE 665 Spring 2005 Computer Algorithms with Applications to VLSI CAD Linear Programming Duality – Longest.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Sequential Synthesis.
Chapter 4 Retiming.
Design and Analysis of Algorithms Single-source shortest paths, all-pairs shortest paths Haidong Xue Summer 2012, at GSU.
Midwestern State University Department of Computer Science Dr. Ranette Halverson CMPS 2433 CHAPTER 4 - PART 2 GRAPHS 1.
Clock Skewing EECS 290A Sequential Logic Synthesis and Verification.
Sequential Timing Optimization. Long path timing constraints Data must not reach destination FF too late s i + d(i,j) + T setup  s j + P s i s j d(i,j)
FUNDAMENTAL PROBLEMS AND ALGORITHMS Graph Theory and Combinational © Giovanni De Micheli Stanford University.
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
Tirgul 12 Algorithm for Single-Source-Shortest-Paths (s-s-s-p) Problem Application of s-s-s-p for Solving a System of Difference Constraints.
Spring 07, Apr 10, 12 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Constraint Graph and Performance Optimization.
Spring 07, Feb 13 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Binary Decision Diagrams Vishwani D. Agrawal James.
Circuit Retiming with Interconnect Delay CUHK CSE CAD Group Meeting One Evangeline Young Aug 19, 2003.
11/17/05ELEC / Lecture 201 ELEC / (Fall 2005) Special Topics in Electrical Engineering Low-Power Design of Electronic Circuits.
ECE Synthesis & Verification - Lecture 2 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Scheduling.
Spring 08, Apr 1 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Testability Measures Vishwani D. Agrawal James.
Spring 08, Jan 15 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher.
Spring 08, Jan 31.. ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Timing Simulation and STA Vishwani D. Agrawal.
Pipelining and Retiming 1 Pipelining  Adding registers along a path  split combinational logic into multiple cycles  increase clock rate  increase.
Spring 07, Feb 8 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Logic Equivalence Vishwani D. Agrawal James J.
Spring 08, Feb 28 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Retiming Vishwani D. Agrawal James J. Danaher.
Fall 2006, Nov. 30 ELEC / Lecture 12 1 ELEC / (Fall 2006) Low-Power Design of Electronic Circuits Test Power Vishwani D.
Penn ESE Fall DeHon 1 ESE (ESE534): Computer Organization Day 19: March 26, 2007 Retime 1: Transformations.
Spring 07, Mar 8 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Timing Verification and Optimization Vishwani D.
Continuous Retiming EECS 290A Sequential Logic Synthesis and Verification.
Retiming. Consider the Following Circuit Suppose T XOR = 3 ns, T pcq = 1 ns, T setup = 1 ns, then this circuit can be clocked at 1 ns + (3 x 3 ns) + 1.
Spring 08, Mar 4, 6 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Constraint Graph and Performance Optimization.
Spring 07, Mar 20 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 A Linear Programming Solution to Clock Constraint.
CS294-6 Reconfigurable Computing Day 16 October 15, 1998 Retiming.
Spring 07, Apr 5 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Retiming Vishwani D. Agrawal James J. Danaher Professor.
Tirgul 13. Unweighted Graphs Wishful Thinking – you decide to go to work on your sun-tan in ‘ Hatzuk ’ beach in Tel-Aviv. Therefore, you take your swimming.
Spring 07, Mar 1, 6 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Timing Simulation and STA Vishwani D. Agrawal.
More Graph Algorithms Weiss ch Exercise: MST idea from yesterday Alternative minimum spanning tree algorithm idea Idea: Look at smallest edge not.
ECE Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Retiming.
Spring 08, Feb 26 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Clock Skew Problem Vishwani D. Agrawal James J.
Spring 08, Feb 6 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Timing Verification and Optimization Vishwani D.
Spring 07, Jan 30 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 SOC Test Scheduling Vishwani D. Agrawal James.
EDA (CS286.5b) Day 18 Retiming. Today Retiming –cycle time (clock period) –C-slow –initial states –register minimization.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 13, 2008 Retiming.
Spring 2010, Feb 10...ELEC 7770: Advanced VLSI Design (Agrawal)1 ELEC 7770 Advanced VLSI Design Spring 2010 Constraint Graph and Retiming Solution Vishwani.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
1 ELEC692 Fall 2004 Lecture 1b ELEC692 Lecture 1a Introduction to graph theory and algorithm.
ELEC 7770 Advanced VLSI Design Spring 2014 Timing Simulation and STA Vishwani D. Agrawal James J. Danaher Professor ECE Department, Auburn University,
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 7: February 3, 2002 Retiming.
Pipelining and Retiming
ELEC Digital Logic Circuits Fall 2015 Logic Synthesis (Chapters 2-5) Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and.
ELEC Digital Logic Circuits Fall 2015 Delay and Power Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and Computer Engineering.
Retiming EECS 290A Sequential Logic Synthesis and Verification.
ELEC Digital Logic Circuits Fall 2014 Delay and Power Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and Computer Engineering.
Shortest Path Problems
Vishwani D. Agrawal James J. Danaher Professor
James D. Z. Ma Department of Electrical and Computer Engineering
ELEC 7770 Advanced VLSI Design Spring 2016 Clock Skew Problem
ELEC 7770 Advanced VLSI Design Spring 2012 Clock Skew Problem
ELEC 7770 Advanced VLSI Design Spring 2014 Clock Skew Problem
ELEC 7770 Advanced VLSI Design Spring 2012 Retiming
Vishwani D. Agrawal James J. Danaher Professor
ICS 353: Design and Analysis of Algorithms
Vishwani D. Agrawal James J. Danaher Professor
ELEC 7770 Advanced VLSI Design Spring 2014 Technology Mapping
ELEC 7770 Advanced VLSI Design Spring 2016 Technology Mapping
Vishwani D. Agrawal James J. Danaher Professor
Vishwani D. Agrawal James J. Danaher Professor
ELEC 7770 Advanced VLSI Design Spring 2016 Retiming
Timing Analysis and Optimization of Sequential Circuits
CSE 417: Algorithms and Computational Complexity
ELEC 7770 Advanced VLSI Design Spring 2012 Timing Simulation and STA
Presentation transcript:

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)1 ELEC 7770 Advanced VLSI Design Spring 2014 Constraint Graph and Retiming Solution Vishwani D. Agrawal James J. Danaher Professor ECE Department, Auburn University Auburn, AL

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)2 Retiming Theorem  Given a network G(V, E, W) and a cycle time T, (r1,... ) is a feasible retiming if and only if:  ri – rj ≤ wijfor all edges (vi,vj) ε E  ri – rj ≤ W(vi,vj) – 1 for all node-pairs vi, vj such that D(vi,vj) > T Where, W(vi,vj) is the minimum weight path between vi and vj D(vi,vj) is the maximum delay among all minimum weight paths between vi and vj

Retiming Theorem Explained  Condition 1, ri – rj ≤ wij, is related to edge weight:  Original circuit is feasible  original weight wij is positive  Originally, ri = rj = 0  Retiming, rj flip-flops added to eij, ri flip-flops removed from eij, net reduction ri – rj must be less than wij to leave the retimed weight of eij positive.  Condition 2, ri – rj ≤ W(vi,vj) – 1 is related to path delays between node pairs being less than clock period T whenever path weight is 0. Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)3

Examine Condition 2 Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)4 vi vj ri rj W1, D1 W2, D2 W3, D3 W1 = W2 < W3, W(vi, vj) = W1 = W2, minimum weight among paths D1 > D2, therefore D(vi, vj) = D1, maximum delay of a minimum weigh path If D1 ≤ T, there is no requirement on ri, rj If D1 > T, Retimed weight W1’ = W1 – ri + rj ≥ 1 (at least 1 FF on path) or ri – rj ≤ W1 – 1

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)5 Timing Optimization  Find the clock period (T) by path analysis.  Set clock period to T/2 and find a feasible retiming.  If feasible, further reduce the clock period to half.  If not feasible, increase clock period.  Do a binary search for optimum clock period.  Retime the circuit.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)6 Representing a Constraint ri – rj ≤ wijorrj ≥ ri – wij rjri – wij

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)7 Constraint Graph r1 ≥ r0 + 3 r1 ≥ r2 + 1 r2 ≥ r0 + 1 r2 ≥ r1 – 1 r3 ≥ r1 + 1 r3 ≥ r2 + 4 r0 ≥ r3 – 6 r0 r1 r2 r

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)8 Feasibility Condition  A set of values for variables can be found if and only if the constraint graph has no positive cycles.  This is also the condition for the solvability of the longest path problem, which provides a solution to the set of constraints.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)9 Example: Infeasible Constraints x1 ≥ x2 + 6 x2 ≥ x1 – 3 x1x x1 x2 6 0 x1 ≥ x2 + 6 x2 ≥ x1 – Positive cycle mean no longest path can be found.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)10 Solving a Constraint Set r1 ≥ r0 + 3 r1 ≥ r2 + 1 r2 ≥ r0 + 1 r2 ≥ r1 – 1 r3 ≥ r1 + 1 r3 ≥ r2 + 4 r0 ≥ r3 – 6 r0 r1 r2 r Longest paths from source r0 to r0, r1, r2, r3 Path lengths: s0=0, s1=3, s2=2, s3=6 Solution: r0=0, r1=3, r2=2, r3=6

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)11 The General Path Problem  Find the shortest (or longest) path in a graph from a source vertex to all other vertices.  Graph has vertices and directed edges:  Edge weights can be positive or negative  Graph can be cyclic  Single source vertex – a vertex with 0 in-degree (not a necessary condition)  Inconsistent problems  Negative weight cycles for shortest path  Positive weight cycles for longest path

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)12 Dijkstra’s Shortest Path Algorithm  Greedy algorithm.  Applies to directed acyclic graphs (DAG) with positive edge weights.  Computational complexity O(|E| + |V| log |V|) ≤ O(n 2 )  References:  A. Aho, J. Hopcroft and J. Ullman, Data Structures and Algorithms, Reading, Massachusetts: Addison-Wesley,  T. Cormen, C. Leiserson and R. Rivest, Introduction to Algorithms, New York: McGraw-Hill, 1990.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)13 Dijkstra’s Shortest Path Algorithm Example 1 v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially: mark v0 0152 Step 1: mark v Step 2: mark v Step 3: mark v Each step marks the path with smallest weight and updates the unmarked path weights.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)14 Dijkstra’s Shortest Path Algorithm Example 2 v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially: mark v0 0152 Step 1: mark v Step 2: mark v Step 3: mark v Each step marks the path with smallest weight and updates the unmarked path weights.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)15 Dijkstra’s Algorithm, G(V, E, W) s0(1) = 0initialize source for ( i = 1 to n )initialize path weights, n=|V| –1 si(1) = w0i repeat { Select an unmarked vertex vq such that sq is minimal Select an unmarked vertex vq such that sq is minimal Mark vq Mark vq foreach ( unmarked vertex vi ) si = min { si, sq + wqi } } until (all vertices are marked)

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)16 Try Dijkstra’s Algorithm for Your Graph

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)17 Dijkstra’s Longest Path Algorithm v0 v2 v3 v1 w01= source si = path length (v0, vi) Alg. steps s0s1s2s3 Initially0-15-2 Step 1: mark v  Step 2: mark v Step 3: mark v v0 v2 v3 v1 w01= source Either change min to max Or change all positive weights to negatives

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)18 Dijkstra’s Alg. Does Not Work for Cycles, Mixed Weights v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially: mark v0 0152 Step 1: mark v Step 2: mark v Step 3: mark v1 0726? -2 Algorithm stops because all vertices are marked. But, there exists a v0 to v3 path of length 5

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)19 Bellman’s Equations – Shortest Path vi vn vm vkvj sq =minimum path weight between source and vq wki wji wmi wni For all vertices: si = min (sq + wqi) vq ε pred(vi)

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)20 Bellman-Ford Algorithm, G(V, E, W) Bellman-Ford { s0(1) = 0initialize source for ( i = 1 to n )initialize path weights, n = |V| – 1 si(1) = w0i for ( j = 1 to n )n iterations for ( i = 1 to n )n nodes si(j+1) = min { si(j), sk(j) + wki } vk ε pred(vi) } if ( si(j+1) == si(j)  i ) return (true) } return (false) Complexity = O(|V||E|) ≤ O(n 3 )

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)21 Bellman-Ford Shortest Path v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially0152 Iteration Iteration Iteration n = 3

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)22 Bellman-Ford Longest Path v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially0-15-2 Iteration Iteration n = 3 (shortest path) Reverse the sign of weights and solve shortest path problem. (Alternative: keep original weights and change min operator in algorithm to max.) Weights reversed

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)23 Bellman’s Equations – Longest Path vi vn vm vkvj sq =maximum path weight between source and vq wki wji wmi wni For all vertices: si = max (sq + wqi) vq ε pred(vi)

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)24 Bellman-Ford for Cycles, Neg. Weights v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially0152 Iteration Iteration Iteration n = 3 (shortest path) This was incorrect with Dijkstra’s shortest path algorithm

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)25 Bellman-Ford for Negative Cycle v0 v2 v3 v1 w01= source si = path weight (v0, vi) Alg. steps s0s1s2s3 Initially0152 Iteration Iteration Iteration Values not stabilized after n iterations. Inconsistent problem: negative cycle. n = 3 (shortest path)

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)26 Retiming Example FF 1055 Delay abc

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)27 Retiming Graph FF 1055 abc h0h0 a 10 b5b5 c5c Critical path = 15 It is the longest path consisting only of zero weight edges.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)28 Feasibility Constraints (Condition 1) FF 1055 abc h0h0 a 10 b5b5 c5c ri – rj ≤ wij  edges i → j Retiming should not cause negative edge weights. rh – ra ≤ 0 ra – rb ≤ 0 rb – rc ≤ 1 rc – rh ≤ 1 rb FFs rc FFs

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)29 Constraint Graph FF 1055 abc rh 0 ra 10 rb 5 rc 5 00 ri – rj ≤ wij  edges i → j Retiming should not cause negative edge weights. rh – ra ≤ 0  rh – 0 ≤ ra ra – rb ≤ 0  ra – 0 ≤ rb Constraints for rb – rc ≤ 1  rb – 1 ≤ rc Condition 1 rc – rh ≤ 1  rc – 0 ≤ rh Observation: Constraint graph has the same structure as the original retiming graph, with signs of weights reversed. Vertex labels are the retiming integer variables.

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)30 Max Delay for Min Weight Paths h0h0 a 10 b5b5 c5c W(h,a) = 0D(h,a) = 10 W(h,b) = 0D(h,b) = 15 W(h,c) = 1D(h,c) = 20 W(a,b) = 0D(a,b) = 15 W(a,c) = 1D(a,c) = 20 W(a,h) = 2D(a,h) = 20 W(b,c) = 1D(b,c) = 10 W(b,h) = 2D(b,h) = 10 W(b,a) = 2D(b,a) = 20 W(c,h) = 1D(c,h) = 5 W(c,a) = 1D(c,a) = 15 W(c,b) = 1D(c,b) = 20 T = 15

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)31 Timing Optimization, T = 7.5? W(h,a) = 0D(h,a) = 10 W(h,b) = 0D(h,b) = 15 W(h,c) = 1D(h,c) = 20 W(a,b) = 0D(a,b) = 15 W(a,c) = 1D(a,c) = 20 W(a,h) = 2D(a,h) = 20 W(b,c) = 1D(b,c) = 10 W(b,h) = 2D(b,h) = 10 W(b,a) = 2D(b,a) = 20 W(c,h) = 1D(c,h) = 5 W(c,a) = 1D(c,a) = 15 W(c,b) = 1D(c,b) = 20 rh 0 ra 10 rb 5 rc 5 00 Add constraints for Condition 2:ri – rj ≤ W(I,j) – 1  paths (i,j) with D(i,j) > 7.5 Constraint graph (feasibility)

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)32 Timing Optimization, T = 7.5? W(h,a) = 0D(h,a) = 10 W(h,b) = 0D(h,b) = 15 W(h,c) = 1D(h,c) = 20 W(a,b) = 0D(a,b) = 15 W(a,c) = 1D(a,c) = 20 W(a,h) = 2D(a,h) = 20 W(b,c) = 1D(b,c) = 10 W(b,h) = 2D(b,h) = 10 W(b,a) = 2D(b,a) = 20 W(c,h) = 1D(c,h) = 5 W(c,a) = 1D(c,a) = 15 W(c,b) = 1D(c,b) = 20 rh 0 ra 10 rb 5 rc Positive cycle; no solution for longest path

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)33 Timing Optimization, T = 11.25? W(h,a) = 0D(h,a) = 10 W(h,b) = 0D(h,b) = 15 W(h,c) = 1D(h,c) = 20 W(a,b) = 0D(a,b) = 15 W(a,c) = 1D(a,c) = 20 W(a,h) = 2D(a,h) = 20 W(b,c) = 1D(b,c) = 10 W(b,h) = 2D(b,h) = 10 W(b,a) = 2D(b,a) = 20 W(c,h) = 1D(c,h) = 5 W(c,a) = 1D(c,a) = 15 W(c,b) = 1D(c,b) = 20 rh 0 ra 10 rb 5 rc rh = 0 rb = 1 rc = 0 ra = 0

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)34 Retiming Graph FF 1055 abc h0h0 a 10 b5b5 c5c rh = 0 ra = 0 rb = 1 rc = 0 10 wij_retimed = wij + rj – ri

Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)35 Retimed Circuit FF a b c h0h0 a 10 b5b5 c5c5 0 1 rh = 0 ra = 0 rb = 1 rc = 0 10 Critical Path = 10 Logic optimization will remove these.

Spring 2014, Feb 10...ELEC 7770: Advanced VLSI Design (Agrawal)36 Correlator Circuit a b c d e f g h Initial retiming vector = {0,0,0,0,0,0,0,0} Critical path delay = 24 rh=0 ra=0 rb=0rc=0 rd=0 re=0 rf=0 rg=0

Retiming Optimization Critical path delay Retiming vector {ra,rb,rc,rd,re,rf,rg,rh} 24{0,0,0,0,0,0,0,0} 12Not feasible 18 {-1,-1,-2,-2,-2,-1,0,0} 15 {-1,-1,-2,-2,-2,-1,0,0} 13.5{-1,-1,-2,-2,-2,-1,0,0} 12.75Not feasible Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)37

Spring 2014, Feb 10...ELEC 7770: Advanced VLSI Design (Agrawal)38 Retiming of Correlator Circuit →10→2→1 0→2→0 0→1 0→1→0 0→2→0 1→0 1→2→1 1→2→0 1→3→1 a b c d e f g h retiming vector = {-1,-1,-2,-2,-2,-1,0,0} Critical path delay = 13.5 rh=0 ra= -1 rb= -1rc= -2 rd= -2 re= -2 rf= -1 rg=0

Spring 2014, Feb 10...ELEC 7770: Advanced VLSI Design (Agrawal)39 Retimed Correlator Circuit → a b c d e f g h retiming vector = {-1,-1,-2,-2,-2,-1,0,0} Critical path delay = 13 rh=0 ra= -1 rb= -1rc= -2 rd= -2 re= -2 rf= -1 rg=0

References  C. E. Leiserson, F. Rose and J. B. Saxe, “Optimizing Synchronous Circuits by Retiming,” Proc. 3 rd Caltech Conf. on VLSI, 1983, pp  C. E. Leiserson and J. B. Saxe, “Retiming Synchronous Circuitry,” Algorithmica, vol. 6, pp. 5-35,  G. De Micheli, Synthesis and Optimization of Digital Circuits, New York: McGraw-Hill, 1994, Section  N. Maheshwari and S. S. Sapatnekar, Timing Analysis and Optimization of Sequential Circuits, Boston: Springer, 1999, Chapter 4. Spring 2014, Feb 14...ELEC 7770: Advanced VLSI Design (Agrawal)40