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
2Outline
- Introduction
- Background
- Sequence Pair
- Methodology
- Shape Validation
- Bus Ordering
- Floorplan Realization
- Experimental Results
- Conclusion
3Introduction
4Background
- 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
5Problem 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
6Problem Formulation
- What is meant by going through ?
- Assume block height gt bus width
7Problem Formulation
8Sequence 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)
9Methodology
10Overview
- 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
11Steps
- Assumption
- 2 layers for bus routing
- Evaluation
- Shape Validation
- 0-bend
- 1-bend
- 2-bend
- Bus Ordering
- Floorplan Realization
12Shape 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
13Shape 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)
14Shape 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
15Shape 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
16Shape Validation 1 bend
- When will a T-shape be formed?
17Shape Validation 1 bend
- Example (ABCDE, ADCBE)
- Horizontal Component ABE
- Vertical Component CD
18Shape 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
19Shape Validation 2 bend
- Step 3 Put the remaining blocks in different
relationships with the vertical component
20Shape Validation 2 bend
- 8 possible relationships
- Step 4 Put the blocks into 2 horizontal
components
21Shape Validation 2 bend
- Example (GHABCEFD, EFDCBGHA)
- (GHABCEFD, AHGBCDFE) ? vertical component
- Upper A, H, G, Lower D, E, F
- A C-shape can be formed
22Shape 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
23Shape 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
24Steps
- Evaluation
- Shape Validation
- Bus Ordering
- Floorplan Realization
25Determine Bus Ordering
26Bus 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
27Bus 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
28Steps
- Evaluation
- Shape Validation
- Bus Ordering
- Floorplan Realization
29Floorplan Realization
- Realization obtaining the positions of the
blocks and buses - This step is the same as that in Xiangs work
30Simulated 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
31Summary
- 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
32Experimental Results
33Platform
- Language
- Implemented using C
- Machine
- Intel Xeon (2.2 GHz) with 1 G memory
- MCNC benchmarks
34Experimental 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
35Experimental 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
36Experimental Results
37Experimental Results
38Experimental Results
39Conclusion
- 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