RTL Design Flow HDL manual design RTL Synthesis

  • Slides: 29
Download presentation
RTL Design Flow HDL manual design RTL Synthesis Library/ module generators netlist 0 b

RTL Design Flow HDL manual design RTL Synthesis Library/ module generators netlist 0 b 1 d s logic optimization netlist a a 0 b 1 s d q clk physical design layout Kurt Keutzer 1

Physical Design: Overall Conceptual Flow Input Read Netlist Floorplanning Initial Placement Routing Region Definition

Physical Design: Overall Conceptual Flow Input Read Netlist Floorplanning Initial Placement Routing Region Definition Global Routing Placement Improvement Cost Estimation Routing Region Ordering Detailed Routing Improvement Cost Estimation Compaction/clean-up Output Kurt Keutzer Write Layout Database 2

Results of Placement A bad placement A good placement What’s good about a good

Results of Placement A bad placement A good placement What’s good about a good placement? What’s bad about a bad placement? Kurt Keutzer A. Kahng 3

Results of Placement Bad placement causes routing congestion resulting in: • Increases in circuit

Results of Placement Bad placement causes routing congestion resulting in: • Increases in circuit area (cost) and wiring • Longer wires more capacitance l l Kurt Keutzer Longer delay Higher dynamic power dissipation Good placement • Circuit area (cost) and wiring decreases • Shorter wires less capacitance l l Shorter delay Less dynamic power dissipation 4

Gordian Placement Flow module coordinates Global Optimization minimization of wire length module coordinates position

Gordian Placement Flow module coordinates Global Optimization minimization of wire length module coordinates position constraints Final Placement adoption of style dependent constraints Partitioning of the module set and dissection of the placement region Regions with k modules Data flow in the placement procedure GORDIAN Kurt Keutzer Complexity space: O(m) time: Q( m 1. 5 log 2 m) Final placement • standard cell • macro-cell &SOG 5

Gordian: A Quadratic Placement Approach Kurt Keutzer • Global optimization: solves a sequence of

Gordian: A Quadratic Placement Approach Kurt Keutzer • Global optimization: solves a sequence of quadratic programming problems • Partitioning: enforces the non-overlap constraints 6

Intuitive formulation Given a series of points x 1, x 2, x 3, …

Intuitive formulation Given a series of points x 1, x 2, x 3, … xn and a connectivity matrix C describing the connections between them (If cij = 1 there is a connection between xi and xj) Find a location for each xj that minimizes the total sum of all spring tensions between each pair <xi, xj> xi xj Problem has an obvious (trivial) solution – what is it? Kurt Keutzer 7

Improving the intuitive formulation To avoid the trivial solution add constraints: Hx=b l These

Improving the intuitive formulation To avoid the trivial solution add constraints: Hx=b l These may be very natural - e. g. endpoints (pads) x 1 xn To integrate the notion of ``critical nets’’ l Add weights wij to nets xj xi wij Kurt Keutzer wij - some springs have more tension should pull associated vertices closer 8

Modeling the Net’s Wire Length connection to other modules y module u net v

Modeling the Net’s Wire Length connection to other modules y module u net v node l vu pin vu ) (x , h (xu , yu ) (xv , yv) vu vu x The length Lv of a net v is measured by the squared distances from its points to the net’s center Lv = å [( x uv- x v ) 2 + ( y uv- yv )2] u Mv ( x uv = xu+ x uv ; yuv = yu + yvu ) Kurt Keutzer 9

Toy Example: Kurt Keutzer x=100 x=200 x 1 x 2 D. Pan 10

Toy Example: Kurt Keutzer x=100 x=200 x 1 x 2 D. Pan 10

Quadratic Optimization Problem A B C D E F D E ( ur ,

Quadratic Optimization Problem A B C D E F D E ( ur , vr ) ' ' F A B A( l ( ur , vr ) C § M éM r êê* )= r ' ê 0 ê M ëM G M M Mù ú * * 0 0 0 Lú 0 0 * * * Lú ú M M Mû Linearly constrained quadratic programming problem min{ F( x) = x TC x + d Tx } x ÎR m s. t. A( l )x = u( l ) Accounts for fixed modules Wire-length for movable modules Center-of-gravity constraints Problem is computationally tractable, and well behaved Commercial solvers available: mostek Kurt Keutzer 11

Global Optimization Using Quadratic Placement Quadratic placement clumps cells in center Partitioning divides cells

Global Optimization Using Quadratic Placement Quadratic placement clumps cells in center Partitioning divides cells into two regions l Placement region is also divided into two regions New center-of-gravity constraints are added to the constraint matrix to be used on the next level of global optimization l Kurt Keutzer Global connectivity is still conserved 12

Setting up Global Optimization Kurt Keutzer 13

Setting up Global Optimization Kurt Keutzer 13

Layout After Global Optimization A. Kahng Kurt Keutzer 14

Layout After Global Optimization A. Kahng Kurt Keutzer 14

Partitioning Kurt Keutzer 15

Partitioning Kurt Keutzer 15

Partitioning In GORDIAN, partitioning is used to constrain the movement of modules rather than

Partitioning In GORDIAN, partitioning is used to constrain the movement of modules rather than reduce problem size By performing partitioning, we can iteratively impose a new set of constraints on the global optimization problem l Assign modules to a particular block Partitioning is determined by l l Kurt Keutzer Results of global placement – initial starting point l Spatial (x, y) distribution of modules Partitioning cost l Want a min-cut partition 16

Layout after Min-cut Now global placement problem will be solved again with two additional

Layout after Min-cut Now global placement problem will be solved again with two additional center_of_gravity constraints Kurt Keutzer 17

Adding Positioning Constraints • Partitioning gives us two new “center of gravity” constraints •

Adding Positioning Constraints • Partitioning gives us two new “center of gravity” constraints • Simply update constraint matrix • Still a single global optimization problem • Partitioning is not “absolute” • modules can migrate back during optimization • may need to re-partition Kurt Keutzer 18

Continue to Iterate Kurt Keutzer 19

Continue to Iterate Kurt Keutzer 19

First Iteration A. Kahng Kurt Keutzer 20

First Iteration A. Kahng Kurt Keutzer 20

Second Iteration A. Kahng Kurt Keutzer 21

Second Iteration A. Kahng Kurt Keutzer 21

Third Iteration A. Kahng Kurt Keutzer 22

Third Iteration A. Kahng Kurt Keutzer 22

Fourth Iteration A. Kahng Kurt Keutzer 23

Fourth Iteration A. Kahng Kurt Keutzer 23

Final Placement Kurt Keutzer 24

Final Placement Kurt Keutzer 24

Final Placement - 1 Earlier steps have broken down the problem into a manageable

Final Placement - 1 Earlier steps have broken down the problem into a manageable number of objects Two approaches: l l Final placement for standard cells/gate array – row assignment Final placement for large, irregularly sized macro-blocks – slicing – won’t talk about this Kurt Keutzer 25

Final Placement – Standard Cell Designs This process continues until there are only a

Final Placement – Standard Cell Designs This process continues until there are only a few cells in each group( 6 ) each group has 6 cells Assign cells in each group close together in the same row or nearly in adjacent rows group: smallest partition Kurt Keutzer A. E. Dunlop, B. W. Kernighan, A procedure for placement of standard-cell VLSI circuits, IEEE Trans. on CAD, Vol. CAD-4, Jan , 1985, pp. 92 - 98 26

Final Placement – Creating Rows 1 1 1, 2 2 2, 3 3 3,

Final Placement – Creating Rows 1 1 1, 2 2 2, 3 3 3, 4 4 5 5 3 3 3, 4 4 4, 5 5 Row-based standard cell design 3, 4 4 4, 5 5 Partitioning of circuit into 32 groups. Each group is either assigned to a single row or divided into 2 rows Kurt Keutzer 27

Standard Cell Layout Kurt Keutzer 28

Standard Cell Layout Kurt Keutzer 28

Another Series of Gordian (a) Global placement with 1 region (b) Global placement with

Another Series of Gordian (a) Global placement with 1 region (b) Global placement with 4 region (c) Final placements D. Pan – U of Texas Kurt Keutzer 29