09.08.2013 Views

RTL Design Flow - Computation Structures Group

RTL Design Flow - Computation Structures Group

RTL Design Flow - Computation Structures Group

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Gordian Placement <strong>Flow</strong><br />

Global<br />

Optimization<br />

minimization<br />

of<br />

wire length<br />

module coordinates<br />

position constraints<br />

module<br />

coordinates<br />

Final<br />

Placement<br />

adoption of style<br />

dependent<br />

constraints<br />

Complexity<br />

space: O(m) time: Q( m 1.5 log 2 m)<br />

Final placement<br />

•standard cell •macro-cell &SOG<br />

Partitioning<br />

of the module set<br />

and dissection of<br />

the placement<br />

region<br />

Regions<br />

with ≤ k<br />

modules<br />

Data flow in the placement procedure GORDIAN<br />

Intuitive formulation<br />

Given a series of points x1, x2, x3, … xn<br />

and a connectivity matrix C describing the connections<br />

between them<br />

(If cij = 1 there is a connection between xi and xj)<br />

Find a location for each xj that minimizes the total sum of<br />

all spring tensions between each pair <br />

xi<br />

Problem has an obvious (trivial) solution – what is it?<br />

xj<br />

Gordian: A Quadratic Placement Approach<br />

• Global optimization:<br />

solves a sequence of quadratic<br />

programming problems<br />

• Partitioning:<br />

enforces the non-overlap constraints<br />

Improving the intuitive formulation<br />

To avoid the trivial solution add constraints: Hx=b<br />

These may be very natural - e.g. endpoints (pads)<br />

x1 xn<br />

To integrate the notion of ``critical nets’’<br />

Add weights wij to nets<br />

xi<br />

wij<br />

xj<br />

wij -some<br />

springs have<br />

more tension<br />

should pull<br />

associated<br />

vertices closer

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!