Presentation is loading. Please wait.

Presentation is loading. Please wait.

Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module.

Similar presentations


Presentation on theme: "Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module."— Presentation transcript:

1 Floorplanning

2 Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module.

3 Slicing Floorplan A slicing floorplan can be obtained by repeatedly subdividing rectangles horizontally or vertically.

4 Slicing Floorplan and Slicing Graph Slicing Floorplan Non-slicing Floorplan

5 Slicing Floorplan and Slicing Graph Slicing Floorplan Slicing Graph corner Not a Slicing Floorplan Not a Slicing Graph

6 Slicing Tree

7 P 1

8 P 1 P : V 1 root

9 Slicing Tree P 1 P : V 1 Right subgraph becomes right subtree Left subgraph becomes left subtree root

10 Slicing Tree P 2 P : V 1 root

11 Slicing Tree P 2 P : V 1 2 root

12 Slicing Tree P 3 P : V 1 2 root

13 Slicing Tree P 3 P : V 1 2 P : H 3 root

14 Slicing Tree P 3 P : V 1 2 P : H 3 Upper subgraph becomes right subtree Lower subgraph becomes left subtree root

15 Slicing Tree f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 root

16 Graph representation of Floorplan  Polar graphs  Adjacency graphs  Channel Intersection Graphs  Channel position graphs

17 Polar Graphs Vertical polar graph Horizontal polar graph source sink source sink

18 Polar Graphs Vertical polar graph Horizontal polar graph source sink source sink Used to determine the area of the smallest floorplan.

19 Adjacency Graphs A D B C E F G H A B C D E F H G source sink Horizontal adjacency graph source sink A B C D E F G H Vertical adjacency graph

20 Channel Intersection Graphs A C B D

21 Channel Position Graphs A C B D A B C D AB C D Horizontal channel Position graph Vertical channel position graph

22 Given circuit modules (or cells) and their connections, determine the approximate location of circuit elements

23 Cost functions for floorplanning  Minimize area  Minimize wirelength  Maximize routability  Minimize delays

24 E A B C F G D A B E C F G D VLSI Floorplanning with adjacency requrements Interconnection graph VLSI floorplan

25 E A B C F G D A B E C F G D VLSI Floorplanning Interconnection graph VLSI floorplan

26 E A B C F G D A B E C F G D VLSI Floorplanning Interconnection graph VLSI floorplan

27 E A B C F G D A B E C F G D VLSI Floorplanning A B E C F G D Interconnection graph VLSI floorplan Dual-like graph

28 E A B C F G D A B E C F G D VLSI Floorplanning A B E C F G D A B E C F G D Interconnection graph VLSI floorplan Dual-like graphAdd four corners

29 E A B C F G D A B E C F G D VLSI Floorplanning A B E C F G D A B E C F G D Interconnection graph VLSI floorplan Dual-like graphAdd four corners Rectangular drawing

30 E A B C F G D A B E C F G D VLSI Floorplanning Interconnection graph VLSI floorplan Rectangular drawing

31 E A B C F G D A B E C F G D VLSI Floorplanning Interconnection graph VLSI floorplan Rectangular drawing Unwanted adjacency Not desirable for MCM floorplanning and for some architectural floorplanning.

32 A B E C F G D MCM Floorplanning Sherwani Sherwani Architectural Floorplanning Munemoto, Katoh, Imamura Munemoto, Katoh, Imamura E A B C F G D Interconnection graph

33 A B E C F G D MCM Floorplanning Architectural Floorplanning E A B C F G D Interconnection graph

34 MCM Floorplanning Architectural Floorplanning A E B F G C D E A B C F G D Interconnection graph Dual-like graph A B E C F G D

35 MCM Floorplanning Architectural Floorplanning A E B F G C D E A B C F G D Interconnection graph Dual-like graph A B E C F G D

36 MCM Floorplanning Architectural Floorplanning A E B F G C D E A B C F G D A E B F G C D Interconnection graph Dual-like graph A B E C F G D

37 MCM Floorplanning Architectural Floorplanning A E B F G C D E A B C F G D A E B F G C D Box-Rectangular drawing Interconnection graph Dual-like graph A B E C F G D dead space

38 Floorplanning with Area Requirements

39 Octagonal Drawing

40 Prescribed-Area Octagonal Drawing Input Plane graph

41 K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Prescribed-Area Octagonal Drawing Input Plane graph A real number for each inner face

42 K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Plane graph Prescribed-area octagonal drawing A real number for each inner face

43 K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Each inner face is drawn as a rectilinear polygon of at most eight corners. The outer face is drawn as a rectangle. Each face has its prescribed area.

44 K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Each inner face is drawn as a rectilinear polygon of at most eight corners. The outer face is drawn as a rectangle. Each face has its prescribed area.

45 2 1 1 2 Area requirements cannot be satisfied if each module is allowed to be only a rectangle. 2 1 1 2 Area requirements can be satisfied if each module is allowed to be a simple rectilinear polygon. 1 1 2 2 Applications VLSI Floorplanning It is desirable to keep the shape of each rectilinear polygon as simple as possible.

46 Our Results G: a good slicing graph O(n) time algorithm.

47 Slicing Tree

48 f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 root

49 Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P E P P P P P P P P P f f f f f f f f f 1 2 3 5 4 67 8 9 1 2 3 4 5 6 7 8 9 10 f P P N S W P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 P

50 Three face paths On a boundary of a single face

51 Not a face path

52 Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P P P P P P P P P f f f f f f f f f 1 2 3 5 4 67 8 9 1 2 3 4 5 6 7 8 9 10 f P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1

53 Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P P P P P P P P P f f f f f f f f f 1 2 3 5 4 67 8 9 1 2 3 4 5 6 7 8 9 10 f P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 We call a graph a good slicing graph if it has a good slicing tree.

54 Good Slicing Graph For a horizontal slice, at least one of the upper subgraph and the lower subgraph cannot be vertically sliced. Cannot be vertically sliced Can be vertically sliced

55 Not every slicing graph is a good slicing graph.

56 Input P P P P P P P P P f f f f f f f f f 1 2 3 5 4 67 8 9 1 2 3 4 5 6 7 8 9 10 f P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 A Good Slicing Graph A Good Slicing Tree

57 Output Prescribed-area Octagonal drawing Each inner face is drawn as a rectilinear polygon with at most eight corners. Particularly, each inner face is drawn as a rectilinear polygon of the following nine shapes. A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27

58 Octagons 8 corners 6 corners 4 corners

59 Octagons A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27

60 Do not appear

61 Feasible Octagons Octagons of nine shapes must satisfy some conditions on size

62 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 First traverse root Algorithm Then traverse the right subtree Finally, traverse the left subtree Depth-first search

63 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 1

64 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 1

65 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 2

66 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 3

67 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 3

68 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f P 4

69 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f

70 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f

71 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f

72 P : V 1 2 P : H 4 3 7 9 8 P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f 1 2 3 4 5 6 7 8 9 10 f

73 Algorithm Initialization at root

74 Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G.

75 Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G.

76 Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G. 5 9 15 8

77 Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G. 5 9 15 8 W = 23 H = 20

78 Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G. Fix arbitrarily the position of vertices on the right side of the rectangle preserving their relative positions.

79 Root : vertical slice Operation at root Algorithm A(G) P r : V P v : V P w : V r v w A(G v ) A(G w ) PrPr A(G v )

80 Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w

81 Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w

82 Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w

83 Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w

84 Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w

85 Root : horizontal slice Operation at root Algorithm P r : H P v : V P w : V r v w R A(G v ) A(G w )

86 Root : horizontal slice Operation at root Algorithm P r : H P v : V P w : V r v w A(G w ) A(G v ) R Case 1: A(G v ) = A(R) A(G v ) A(G w )

87 Root : horizontal slice Operation at root Algorithm A(G w ) A(G v ) Case 2: A(G v ) > A(R) R A(G v ) A(G w )

88 Root : horizontal slice Operation at root Algorithm Case 3: A(G v ) < A(R) Case 2: A(G v ) > A(R) A(G w ) A(G v ) A(G w )

89 Root : horizontal slice Operation at root Algorithm 6 corners A(G w ) A(G v ) Case 3: A(G v ) < A(R) Case 2: A(G v ) > A(R) A(G w ) A(G v ) A(G w )

90 Polygon of exactly 8 corners may appear when a horizontal slice is embedded inside a polygon of 6 corners. 6 corners 8 corners

91 P u : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice

92 P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Fixed

93 P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Fixed Face

94 P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Embed the slicing path in R u Vertical slice

95 P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Feasible Octagon R v Feasible Octaon R w

96 A(G v ) A(Gw)A(Gw) A(Gv)A(Gv)A(Gv)A(Gv) A(Gw)A(Gw) Large 10 corners Horizontal slice

97 very small foot-lenght RuRu PuPu A(Gv)A(Gv) 10 corners

98 very small foot-lenght RuRu PuPu f number of inner faces in G

99 very small foot-lenght RuRu PuPu f number of inner faces in G K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8

100 very small foot-lenght RuRu PuPu f number of inner faces in G H height of initial rectangle R r Input at root R r A(R ) = A(G) r H=20

101 very small foot-lenght RuRu PuPu f number of inner faces in G K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8 A(R ) = A(G) r H=20

102 very small foot-lenght RuRu PuPu f number of inner faces in G

103 very small foot-lenght RuRu large enough East side

104 very small foot-lenght RuRu large enough East side The number of inner faces each of which has an edge on the east side.

105 Computation at a leaf node P E P W P S N P P E P W P S N P

106 Time Complexity Overall time complexity is linear.

107 Conclusion We have presented a linear algorithm for prescribed area octagonal drawings of good slicing graphs. Obtaining such an algorithm for larger classes of graphs is our future work. We also give a sufficient condition for a graph of maximum degree 3 to be a good slicing graph and give a linear-time algorithm to find a good slicing tree of such graphs.

108


Download ppt "Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module."

Similar presentations


Ads by Google