Lec4

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lec4 as PDF for free.

More details

  • Words: 1,270
  • Pages: 14
Placement • The process of arranging the circuit components on a layout surface. • Inputs: A set of fixed modules, a netlist. • Goal: Find the best position for each module on the chip according to appropriate cost functions. – Considerations: routability/channel density, wirelength, cut size, performance, thermal issues, I/O pads. 1

2

1

3

3

5

5

6

1 5 2

D

B

C

A

E

F

G

H

Density = 2 (2 tracks required) 7

3

8

4

6

8

4

8

7

2

7

6

A

B

C

D

E

F

G

H

4

wirelength = 10

wirelength = 12 Shorter wirelength, 3 tracks required.

1

Estimation of Wirelength • Semi-perimeter method: Half the perimeter of the bounding rectangle that encloses all the pins of the net to be connected. Most widely used approximation! • Complete graph: Since #edges in a complete graph ( n(n−1) ) is 2 P of tree edges (n − 1), wirelength ≈ n2 (i,j)∈net dist(i, j).

n × 2

#

• Minimum chain: Start from one vertex and connect to the closest one, and then to the next closest, etc. • Source-to-sink connection: Connect one pin to all other pins of the net. Not accurate for uncongested chips. • Steiner-tree approximation: Computationally expensive. • Minimum spanning tree

2

4

10

7 8

7

8 3

3

3 3 4

semi−perimeter len = 11

complete graph len * 2/n = 17.5

chain len = 14

8 10

7 4

3

3 3

4 source−to−sink len = 17

Steiner tree len = 12

Spanning tree len = 13

Min-Cut Placement • Breuer, “A class of min-cut placement algorithms,” DAC-77. • Quadrature: suitable for circuits with high density in the center. • Bisection: good for standard-cell placement. • Slice/Bisection: good for cells with high interconnection on the periphery. 3a 2a 3b 1 3c 2b 3d

3a 1 3b 4a

n/2

2

4b

10a 9a10b8 10c 9b 10d

6a 5a 6b 4 6c 5b 6d

C2

n/4 C1

n/4 C2

n/2

C1

1 2 3 4 5 6 7

n/k

n/k C1

n/4

n/4

n/2

n/2

quadrature

n/2

bisection

(k−1)n/k

n/k C2 (k−2)n/k

slice/bisection 3

Algorithm for Min-Cut Placement Algorithm: Min Cut Placement(N, n, C) /* N : the layout surface */ /* n: # of cells to be placed */ /* n0 : # of cells in a slot */ /* C: the connectivity matrix */ 1 2 3 4 5 6 7 8

begin if (n ≤ n0 ) then PlaceCells(N, n, C); else (N1 , N2 ) ← CutSurface(N ); (n1 , C1 ), (n2 , C2 ) ← Partition(n, C); Call Min Cut Placement(N1 , n1 , C1 ); Call Min Cut Placement(N2 , n2 , C2 ); end

4

Quadrature Placement Example • Apply K-L heuristic to partition + Quadrature Placement: Cost C1 = 4, C2L = C2R = 2, etc. P Q

8 4

2

7

1 5

R

14

Q1

16

Q2

15

Q3

12

3 13

9 6

11

10

P C4a 2,4,5,7

8,12,13,14

2

4

8

14

5

7

12

13

1

9

11

16

3

6

10

15

C2 C2 1,3,6,9

10,11,15,16

C1

Q C4b R

C3a

C1

O1 C4a C2 O2 C4b O3

C3b

5

Min-Cut Placement with Terminal Propagation • Dunlop & Kernighan, “A procedure for placement of standard-cell VLSI circuits,” IEEE TCAD, Jan. 1985. • Drawback of the original min-cut placement: Does not consider the positions of terminal pins that enter a region. – What happens if we swap {1, 3, 6, 9} and {2, 4, 5, 7} in the previous example? prefer to have them in R1

S

S L1

L1

R1

L2

R2

R

L2

6

Terminal Propagation • We should use the fact that s is in L1 ! dummy cell

center

L1

s

p

L2 Lower cost

R1

L1

R2

L2

s

p

R1

R2 higher cost

P will stay in R1 for the rest of partitioning!

• When not to use p to bias partitioning? Net s has cells in many groups? minimum rectilinear Steiner tree p2 p p1 p R h/3 h/3 h h

L

p3 Don’t use p to bias the solution in either direction!

Use p!

G 7

Terminal Propagation Example • Partitioning must be done breadth-first, not depth-first. a

S

b

c

a

C1 b

L

a

d

d

C1

C1

p1

b

R L c

b

c

d C1

S

a

L1

L1

a

b

R1

L2

c

d

R2

c

b

a

d

R1

R c

d

unbiased partition of R

L2

with terminal propagation

R2

without terminal propagation

8

Placement by Simulated Annealing • Sechen and Sangiovanni-Vincentelli, “The TimberWolf placement and routing package,” IEEE J. Solid-State Circuits, Feb. 1985; “TimberWolf 3.2: A new standard cell placement and global routing package,” DAC86. • TimberWolf: Stage 1 – Modules are moved between different rows as well as within the same row. – Modules overlaps are allowed. – When the temperature is reached below a certain value, stage 2 begins. • TimberWolf: Stage 2 – Remove overlaps. – Annealing process continues, but only interchanges adjacent modules within the same row.

9

Solution Space & Neighborhood Structure • Solution Space: All possible arrangements of the modules into rows, possibly with overlaps. • Neighborhood Structure: 3 types of moves – M1 : Displace a module to a new location. – M2 : Interchange two modules. – M3 : Change the orientation of a module. 1 2

2 1

4

3 4

overlap M1

M2

3

M3

10

Neighborhood Structure • TimberWolf first tries to select a move between M1 and M2 : P rob(M1 ) = 0.8, P rob(M2 ) = 0.2. • If a move of type M1 is chosen and it is rejected, then a move of type M3 for the same module will be chosen with probability 0.1. • Restrictions: (1) what row for a module can be displaced? (2) what pairs of modules can be interchanged? • Key: Range Limiter – At the beginning, (WT , HT ) is very large, big enough to contain the whole chip. – Window size shrinks slowly as the temperature decreases. log(T ).

Height and width ∝

– Stage 2 begins when window size is so small that no inter-row module interchanges are possible.

W T H

T

11

Cost Function • Cost function: C = C1 + C2 + C3. • C1 : total estimated wirelength. – C1 =

P

i∈N ets

(αi wi + βi hi )

– αi , βi are horizontal and vertical weights, respectively. (αi = 1, βi = 1 ⇒ 12 × perimeter of the bounding box of Net i.) – Critical nets: Increase both αi and βi . – If vertical wirings are “cheaper” than horizontal wirings, use smaller vertical weights: βi < αi . • C2 : penalty function for module overlaps. – C2 = γ

P

i6=j

2 , γ: penalty weight. Oij

– Oij : amount of overlaps in the x-dimension between modules i and j. • C3 : penalty function that controls the row length. – C2 = δ

P

r∈Rows

|Lr − Dr |, δ: penalty weight.

– Dr : desired row length. – Lr : sum of the widths of the modules in row r. 12

Annealing Schedule • Tk = rk Tk−1 , k = 1, 2, 3, . . . • rk increases from 0.8 to max value 0.94 and then decreases to 0.8. • At each temperature, a total # of nP attempts is made. modules; P : user specified constant.

n: # of

• Termination: T < 0.1.

13

Related Documents

Lec4
November 2019 5
Lec4
November 2019 9
Lec4
May 2020 3
Lec4-5
May 2020 7
Ortho Lec4
June 2020 11
3101-1-lec4
November 2019 5