Multi-Bend Bus-Driven Floorplanning - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

Multi-Bend Bus-Driven Floorplanning

Description:

Multi-Bend Bus-Driven Floorplanning Jill H.Y.Law & Evangeline F.Y.Young The Chinese University of Hong Kong – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 40
Provided by: hyl97
Learn more at: http://archive.sigda.org
Category:

less

Transcript and Presenter's Notes

Title: Multi-Bend Bus-Driven Floorplanning


1
Multi-Bend Bus-Driven Floorplanning
  • Jill H.Y.Law Evangeline F.Y.Young
  • The Chinese University of Hong Kong

2
Outline
  • Introduction
  • Background
  • Sequence Pair
  • Methodology
  • Shape Validation
  • Bus Ordering
  • Floorplan Realization
  • Experimental Results
  • Conclusion

3
Introduction
4
Background
  • Why is bus-driven floorplanning important?
  • Previous work
  • Hua Xiang, Xiaoping Tang and Martin D.F. Wong
    Bus-Driven Floorplanning ICCAD 2003
  • 0-bend is not enough for buses going through many
    blocks

5
Problem Formulation
  • A set of n blocks B b0, b1, , bn-1
  • A set of m buses U u0, u1, , um-1, where
    each bus is associated with a width ti
  • Decide the position of blocks, such that
  • Buses go through their blocks
  • Chip area minimized
  • Bus area minimized
  • Buses can have at most 2-bends

6
Problem Formulation
  • What is meant by going through ?
  • Assume block height gt bus width

7
Problem Formulation
8
Sequence Pair (SP)
  • A pair of sequences of n elements
  • (ab, ab), a is on the left of b
  • (ab, ba), a is on top of b
  • Example (acbde, daceb)

9
Methodology
10
Overview
  • While Temp gt threshold
  • Apply a move to obtain a new SP
  • Evaluate the floorplan
  • Shape Validation
  • Bus Ordering
  • Floorplan Realization
  • Accept or reject according to Cost and Temp

11
Steps
  • Assumption
  • 2 layers for bus routing
  • Evaluation
  • Shape Validation
  • 0-bend
  • 1-bend
  • 2-bend
  • Bus Ordering
  • Floorplan Realization

12
Shape Validation
  • Check the bus one by one
  • From the relative position of the blocks, check
    if a bus of at most 2 bends can go through all
    blocks

13
Shape Validation 0 bend
  • Step 1 Extract the related blocks from the
    sequence pair
  • Example For a bus ABE
  • Given a SP (ABCDE, ABCED) ? (ABE, ABE)
  • Step 2 Check relative position between blocks
  • Example For a bus ABC
  • Horizontal bus (ABCDE, ADEBC) ? (ABC, ABC)
  • Vertical bus (CDBEA , ABCDE) ? (CBA, ABC)

14
Shape Validation 1 bend
  • L-shape bus
  • 1 horizontal component
  • 1 vertical component
  • How to recognize them?
  • Step 1 Extract the related blocks (X, Y)
  • Step 2 Find the Longest Common Subsequence (LCS)
    of (X, Y) ? Horizontal component

15
Shape Validation 1 bend
  • Step 3 Check if the remaining blocks in reverse
    order
  • Example (ABCDEF, ABCFED)
  • LCS?ABCD, remaining blocks (DEF, FED)
  • Step 4 Check if T-shape
  • T-shape also contains one horizontal component
    and one vertical component
  • T-shape is kept for later 2-bend checking

16
Shape Validation 1 bend
  • When will a T-shape be formed?

17
Shape Validation 1 bend
  • Example (ABCDE, ADCBE)
  • Horizontal Component ABE
  • Vertical Component CD

18
Shape Validation 2 bend
  • C-Shapes, Z-Shapes, mirrored Z-Shapes
  • HVH or VHV
  • Assume HVH (VHV is similar)
  • How to recognize them?
  • Step 1 Extract the related blocks (X, Y)
  • Step 2 Find the LCS of (X, YR) ? vertical
  • Example (ABCDE, ADCBE)
  • Find the LCS of (ABCDE, EBCDA) BCD

19
Shape Validation 2 bend
  • Step 3 Put the remaining blocks in different
    relationships with the vertical component

20
Shape Validation 2 bend
  • 8 possible relationships
  • Step 4 Put the blocks into 2 horizontal
    components

21
Shape Validation 2 bend
  • Example (GHABCEFD, EFDCBGHA)
  • (GHABCEFD, AHGBCDFE) ? vertical component
  • Upper A, H, G, Lower D, E, F
  • A C-shape can be formed

22
Shape Validation 2 bend
  • Example (AEBCDF, EDCBFA)
  • (AEBCDF, AFBCDE) ? vertical component
  • Upper A, Lower D, LowerLeft E,
    LowerRight F
  • No valid 2-bend shape can be formed

23
Shape Validation
  • Extract the related blocks
  • Check if 0-bend
  • Check if 1-bend
  • Assume HVH
  • Check if 2-bend
  • Assume VHV
  • Check if 2-bend
  • Mark it invalid if all no

24
Steps
  • Evaluation
  • Shape Validation
  • Bus Ordering
  • Floorplan Realization

25
Determine Bus Ordering
26
Bus Ordering
  • Step 1 Split all the buses into 0-bend bus
    components
  • Step 2 Build vertical graph and horizontal graph
    by looking at each pair of bus components
  • Use a node to represent each bus component
  • If bus component a has to be on top of bus
    component b, add an edge from node a to node b
  • If there is cycle, at least one bus component in
    the cycle has to be removed
  • Horizontal graph can be built in a similar fashion

27
Bus Ordering
  • Step 3 If there are cycles, remove nodes (bus
    components) to make the graph acyclic
  • Aim at removing the least number of nodes
  • NP-complete
  • Maximum degree heuristic
  • Step 4 Remove the corresponding bus components
    in the other graph as well

28
Steps
  • Evaluation
  • Shape Validation
  • Bus Ordering
  • Floorplan Realization

29
Floorplan Realization
  • Realization obtaining the positions of the
    blocks and buses
  • This step is the same as that in Xiangs work

30
Simulated Annealing
  • Simulated Annealing Framework
  • Moves
  • Swap
  • Rotation
  • Cost Function
  • Cost ??A ??B ??I
  • A chip area, B total bus area, I number of
    invalid bus
  • Can consider other aspects by adding more terms
    in the cost function
  • Total wire length
  • Routing congestion

31
Summary
  • While Temp gt threshold
  • Apply a move to obtain a new floorplan
  • Evaluate the floorplan
  • Shape Validation
  • Bus Ordering
  • Floorplan Realization
  • Accept or reject according to Cost and Temp

32
Experimental Results
33
Platform
  • Language
  • Implemented using C
  • Machine
  • Intel Xeon (2.2 GHz) with 1 G memory
  • MCNC benchmarks

34
Experimental Results
  • The data set used in Xiangs work
  • calculated by (y1 y0) / y0100

Xiangs Work Xiangs Work Our Work Our Work Comparison Comparison
Time (s) Dead space Time (s) Dead space Time Dead space
apte 15 0.72 30 0.48 100.00 -33.33
xerox 15 0.95 35 0.42 133.33 -55.79
hp 33 0.62 51 0.29 54.55 -53.23
ami33-1 11 0.94 93 1.00 745.55 6.38
ami33-2 92 1.27 144 1.19 56.62 -6.30
ami49-1 16 0.85 71 0.56 343.75 -34.12
ami49-2 302 0.84 713 0.58 136.09 -30.95
ami49-3 285 1.09 865 0.60 203.51 -44.95
Average 221.65 -31.54
35
Experimental Results
  • In this data set, each bus has to go through 10
    15 blocks
  • calculated by (y1 y0) / y0100

Xiangs Work Xiangs Work Our Work Our Work Comparison Comparison
Time (s) Dead space Time (s) Dead space Time Dead space
ami33-3 86 1.81 32 1.01 -62.79 -44.20
ami33-4 gt1000 NA 92 1.90 NA NA
ami33-5 gt 1000 NA 95 3.80 NA NA
ami49-4 73 19.34 88 0.63 20.55 -96.74
ami49-5 gt 1000 NA 261 1.17 NA NA
ami49-6 gt 1000 NA 140 2.19 NA NA
Average 118 1.78
36
Experimental Results
  • ami49 2

37
Experimental Results
  • ami49 3

38
Experimental Results
  • ami49 6

39
Conclusion
  • Solve the bus-driven floorplanning problem for
    0-bend, 1-bend, 2-bend buses
  • The presence of 1-bend and 2-bend buses is
    important, especially when the number of blocks
    that a bus goes through is large
Write a Comment
User Comments (0)
About PowerShow.com