Вы находитесь на странице: 1из 22

SLICING AND NON SLICING FLOORPLANNING

Submitted By: Surabhi Singh 11534015 (M.E.V)


1

FLOORPLANNING
After the circuit partitioning phase, we need to assign a specific shape to a block and arrange the blocks on the layout surface and interconnect their pins according to the netlist. The arrangement of blocks is done in two phases; 1. Floorplanning phase, which consists of planning and sizing of blocks 2. Interconnect and the Placement phase, which assign a specific location to blocks. Floorplans are of 2 types: 1. Slicing floorplan 2. Non- Slicing floorplan
2

A Slicing Tree and its Floorplan


A slicing floorplan is a floorplan which can be obtained by recursively partitioning a rectangle into two parts either by a vertical line or a horizontal line.

H: Horizontal node, V: Vertical node


3

A Non-Sliceable Floorplan

Slicing floorplan
Stockmeyer Algorithm:It determines the orientation of the blocks in
the floorplan so that the overall floorplan area is minimized Steps: 1.For vertical internal node Merge the first dimensions of the left child (wl, hl) and the right child (wr, hr). The dimensions of the left and the right child are sorted so that the width is increasing and the height is decreasing. The resulting dimension is (wl + wr,max{hl, hr}). If hl > hr, we merge the second dimension of the left child and the first dimension of the right child. If hl < hr, we merge the first dimension of the left child and the second dimension of the right child. If hl = hr, we merge the second dimension of both the left and the right child.
5

2.For horizontal node The dimensions of the children are sorted so that the width is decreasing and the height is increasing. We merge the first dimensions of the left (wl, hl) and the right child (wr,hr).

The resulting dimension after the merging is (max{wl,wr}, hl

+ hr).
The way to choose the next merging candidate is the same as in vertical cut.

For example: Given a slicing floorplan in which (width,


height) of the blocks 1 through 8 are {(2,4), (1,3), (3,3), (3,5), (3,2), (5,3), (1,2), (2,4)}.

Steps: (a) Visit node a: Since the cut orientation is vertical; L = {(2, 3), (3, 2)} ; {l1,l2} R = {(2, 4), (4, 2)} ; {r1,r2} (i) Join l1 = (2, 3) and r1 = (2, 4): we get (2 + 2,max{3, 4}) =(4, 4). Since the maximum is from R, we join l1 and r2 next. (ii) Join l1 = (2, 3) and r2 = (4, 2): we get (2 + 4,max{3, 2}) = (6, 3). Since the maximum is from L, we join l2 and r2 next. (iii) Join l2 = (3, 2) and r2 = (4, 2): we get (3 + 4,max{2, 2}) = (7, 2). Thus, the resulting dimensions are {(4, 4), (6, 3), (7, 2)}.

(b) Visit node b: Since the cut orientation is horizontal; L = {(4, 2), (2, 4)} R = {(3, 1), (1, 3)} (i) Join l1 = (4, 2) and r1 = (3, 1): we get (max{4, 3},2 + 1) = (4, 3). Since the maximum is from L, we join l2 and r1 next. (ii) Join l2 = (2, 4) and r1 = (3, 1): we get (max{2, 3},4 + 1) = (3, 5). Since the maximum is from R, we join l2 and r2 next. (iii) Join l2 = (2, 4) and r2 = (1, 3): we get (max{2, 1},4 + 3) = (2, 7). Thus, the resulting dimensions are {(4, 3), (3, 5), (2, 7)}.

(c) Visit node c: Since the cut orientation is vertical; L = {(4, 4), (6, 3), (7, 2)} R = {(2, 7), (3, 5), (4, 3)} (i) Join l1 = (4, 4) and r1 = (2, 7): we get (4 + 2,max{4, 7}) = (6, 7). Since the maximum is from R, we join l1 and r2 next. (ii) Join l1 = (4, 4) and r2 = (3, 5): we get (4 + 3,max{4, 5}) = (7, 5). Since the maximum is from R, we join l1 and r3 next. (iii) Join l1 = (4, 4) and r3 = (4, 3): we get (4 + 4,max{4, 3}) = (8, 4). Since the maximum is from L, we join l2 and r3 next. (iv) Join l2 = (6, 3) and r3 = (4, 3): we get (6 + 4,max{3, 3}) = (10, 3). Since the maximum is from R (and L), we reach the end of R and thus terminate. Thus, the resulting dimensions are {(6, 7), (7, 5), (8, 4), (10, 3)}.
10

The bottom-up dimensions computation

11

Computation of new dimensions


(a) Node g: we choose (13, 9) for this root node. This is from joining (3, 4) and (13, 5). Thus, node e is (3, 4), and node f is (13, 5). (b) Node e: we choose (3, 4), which is from joining (3, 3) and (2, 1). Thus, the optimal orientation of block 3 is (3, 3), and block 7 is (2, 1). (c) Node f: we choose (13, 5), which is from joining (10, 5) and (3, 5). Thus, node d is (10, 5), and the optimal orientation of block 6 is (3, 5). (d) Node d: we choose (10, 5), which is from joining (7, 5) and (3, 5). Thus, node c is (7, 5), and the optimal orientation of block 4 is (3, 5). (e) Node c: we choose (7, 5), which is from joining (4, 4) and (3, 5). Thus, node a is (4, 4), and node b is (3, 5). (f) Node a: we choose (4, 4), which is from joining (2, 3) and (2, 4). The optimal orientation of block 5 is (2, 3), and block 1 is (2, 4). (g) Node b: we choose (3, 5), which is from joining (2, 4) and (3, 1). The optimal orientation of block 8 is (2, 4), and block 2 is (3, 1).
12

Slicing floorplan before and after the optimal rotation

13

Normalized Polish Expression


Given a binary tree that represents a slicing floorplan of n blocks, the polish expression of this tree is a string of length 2n 1 that consists of the block numbers and H (for horizontal cut) and V (for vertical cut).The numbers in the expression are called operands, and the H and V are called operators. PROPERTIES: (i) each block appears exactly once in the string (ii) the number of operands is larger than the number of operators at all positions in the string (iii) there are no consecutive operators of the same type in the string
14

For example:
Consider the following polish expression: PE1 = 25V 1H374V H6V 8VH The (width, height) of the modules 1 through 8 are {(2,4), (1,3), (3,3), (3,5),(3,2), (5,3), (1,2), (2,4)}.

15

STEP 1 (a) Visit node a: vertical merging of (1, 2) and (3, 5) results in (1 + 3,max{2, 5}) = (4, 5) (b) Visit node b: horizontal merging of (3, 3) and (4, 5) results in (max{3, 4},3 +5) = (4, 8) (c) Visit node c: vertical merging of (4, 8) and (5, 3) results in (9, 8). (d) Visit node d: vertical merging of (9, 8) and (2, 4) results in (11, 8). (e) Visit node e: vertical merging of (1, 3) and (3, 2) results in (4, 3). (f) Visit node f: horizontal merging of (4, 3) and (2, 4) results in (4, 7). (g) Visit node g: horizontal merging of (4, 7) and (11, 8) results in (11, 15).
16

Floorplans after M1, M2 and M3 move

17

Sequence Pair Representation Given a non-slicing

Non slicing floorplan

floorplan of n modules,the sequence pair is a pair of module name sequences that contains all the information about which subset of modules is above, below, to the right of, and to the left of a given module. FOR EXAMPLE: Consider the following sequence pair SP1 = (17452638, 84725361). The (width, height) of the modules 1 through 8 are {(2,4), (1,3), (3,3), (3,5), (3,2),(5,3), (1,2), (2,4)}.

18

1. Draw the horizontal and vertical constraint graphs.

(c)
19

2. What is the minimum area of the non-slicing floorplan? The width of the floorplan is 11 from the HCG, and the height is 15 from the VCG. Thus, the floorplan area is 11 15 = 165.

20

Non-slicing floorplan based on SP1.

21

Thank you

22

Вам также может понравиться