Академический Документы
Профессиональный Документы
Культура Документы
Flow
Bounding Box and Cost Function
• Bounding box underestimates
wirelength
– q(n) is compensation factor
• q is 1 for 3- and 2-terminal nets
• increases to 2.79 for 50 terminal
nets
– Cav is channel capacity (tracks)
in x and y directions over the
bounding box of net n
• penalizes placements which require
more routing in areas of the FPGA
that have narrower channels.
• However, Cav is constant since
channel width is fixed for island
style FPGA
Automatic Schedule - Tstart
• Tnew=α.Told
– The value of α will depend on the fraction of
moves that were accepted at temperature Told
– It has been shown that if the fraction is kept close
to 0.44 for as long as possible then the
convergence is the best.
• Dlimit(new) = Dlimit(old) . (1 – 0.44 + Raccept(old)
Range Limiting
– As temperature drops, limit scope of swaps
– Increased likelihood of acceptance.
– Can also used to secure critical path performance.
Timberwolf
• Delay profile
– Homogenous FPGA
– Exploit uniformity
• Compute delay as a function of distance (∆x, ∆y)
• Compute a delay lookup matrix for every possible
∆x, ∆y
– Router is timing driven
• Take advantage of the architecture features
– Segment length
– Use long wires for blocks on far ends of the FPGA
– Assumption that router will probably find the
minimum delay path (a leap of faith!)
Path vs Connection Based Timing Analysis
• Path based:
– Timing-analysis to compute path-delays at every stage of the
placement and use delays in the cost function
– Computationally expensive
• Moving any connection triggers a new timing-analysis
• Connection based:
– Perform timing-analysis before placement
• Assign slacks to each connection
• Pay attention to connections with low slack
– Delay values are always up to date (∆x, ∆y)
– Criticality becomes outdated after the moves
• Approach: Hybrid
– Allow certain number of moves between each timing-analysis
Determining Criticality
[0 1]
2 3
(0,8)
(8,6)
( x3 − 8) 2
( y3 − 6) 2
(0,2)
1 4 (8,3)
(0,0) ( x1 − x4 ) 2 ( y1 − y4 ) 2
Objective Function
Q = ( x1 − 0) 2 + ( x1 − x4 ) 2 + ( x2 − 0) 2 + ( x2 − x3 ) 2 +
( x2 − x4 ) 2 + ( x3 − x4 ) 2 + ( x3 − 8) 2 + ( x4 − 8) 2 +
( y1 − 2) 2 + ( y1 − y4 ) 2 + ( y2 − 8) 2 + ( y2 − y3 ) 2 +
( y2 − y4 ) 2 + ( y3 − y4 ) 2 + ( y3 − 6) 2 + ( y4 − 3) 2
2
Q = ( x1 − 0) 2 + ( x1 − x4 ) 2 + ( x2 − 0) 2 + ( x2 − x3 ) 2 +
3
2 2
( x2 − x4 ) + ( x3 − x4 ) 2 + ( x3 − 8) 2 + ( x4 − 8) 2 +
2
3 3
2
( y1 − 2) + ( y1 − y4 ) + ( y2 − 8) + ( y2 − y3 ) 2 +
2 2 2
3
2 2
( y2 − y4 ) 2 + ( y3 − y4 ) 2 + ( y3 − 6) 2 + ( y4 − 3) 2
3 3
Center Spread Constraints
12 x1 + 12 x2 + 12 x3 + 12 x4 = 48 × 4
12 y1 + 12 y2 + 12 y3 + 12 y4 = 48 × 5
Q ' = Q + λ1 ( A1 x − b1 ) + λ2 ( A2 y − b2 )
2 3
4
1
Placement Problem Formulation
• Let C = {c1 , c2 ,..., cn } be the set of n modules to
be placed.
• Let IO = {IO1 , IO2 ,..., IOm } be the set of IO modules.
– IO modules are assumed to be fixed.
• Let N = {N1 , N 2 ,..., N k } be the set of k nets in the
design.
• If two modules Ci and Cj are connected by the
net, then the term [( xi − x j )2 + ( yi − y j )2 ] is introduced
in the objective function.
Placement Problem Formulation
• The objective function consists of terms
contributed by each net and can be written as,
k
Q=∑ ∑ {( xi − x j ) + ( yi − y j ) }
2 2
t =1 Ci ,C j ∈Nt ,i ≠ j
∑a x
i =1
i i = Axc
where,
n
∑a
i =1
i =A
Problem Statement
Minimize
k ⎛ ⎞
Q=∑ ft ⎜ ∑ {( xi − x j ) + ( yi − y j ) }⎟
2 2
⎜ C ,C ∈N ,i ≠ j ⎟
t =1 ⎝ i j t ⎠
subject to
n
∑a x
i =1
i i = Axc
Problem Statement
Minimize
1 T
Q = X CX + p X
T
2
subject to
MX = r
Solution Method
• The linearly constrained QP can be solved by
first transformation to unconstrained QP with
modified objective function,
Q ' = Q − Λ(MX − r )
• where Λ is a vector of Lagrange multipliers.
– minimizing Q’ also minimizes Q.
• The minimum Q’ is obtained by equating the
first-order partial derivative with respect to
eachλ ∈ Λ and each x ∈ X to zero. This yields a
system of linear equations
AX = b
Generating Feasible Layouts
• Center-of-gravity constraint
– Helps spread the cells evenly while monitoring
wirelength