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

108
Floorplanning
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    220
  • download

    4

Transcript of Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller...

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

Floorplanning

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

Obtained by subdividing a given rectangle into smaller rectangles.

Each smaller rectangle corresponds to a module.

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

Slicing Floorplan

Slicing Floorplan

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

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

Slicing Floorplan and Slicing Graph

Slicing Floorplan

Non-slicing Floorplan

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

Slicing Floorplan and Slicing Graph

Slicing Floorplan Slicing Graph

corner

Not a Slicing Floorplan Not a Slicing Graph

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

Slicing Tree

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

Slicing Tree

P1

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

Slicing Tree

P1

P : V1

root

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

Slicing Tree

P1

P : V1

Right subgraph becomes right subtree

Left subgraph becomes left subtree

root

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

Slicing Tree

P2

P : V1

root

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

Slicing Tree

P2

P : V1

P : V2

root

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

Slicing Tree

P3

P : V1

P : V2

root

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

Slicing Tree

P3

P : V1

P : V2

P : H3

root

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

Slicing Tree

P3

P : V1

P : V2

P : H3

Upper subgraph becomes right subtree

Lower subgraph becomes left subtree

root

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

Slicing Tree

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

root

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

Graph representation of Floorplan

Polar graphsAdjacency graphsChannel Intersection GraphsChannel position graphs

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

Polar Graphs

Vertical polar graph

Horizontal polar graph

sourcesink

source

sink

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

Polar Graphs

Vertical polar graph

Horizontal polar graph

sourcesink

source

sink

Used to determine the area of the smallest floorplan.

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

Adjacency Graphs

A D

B

C

E

F

G

H

A

B

C

D

E

FH

G

source

sink

Horizontal adjacency graphsource

sink

A

B

C

D

EF

G

H Vertical adjacency graph

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

Channel Intersection Graphs

A

C

B

D

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

Channel Position Graphs

A

C

B

D

A B

C D

A B

C D

Horizontal channel Position graph

Vertical channel position graph

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

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

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

Cost functions for floorplanning

Minimize areaMinimize wirelengthMaximize routabilityMinimize delays

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI Floorplanning with adjacency requrementsVLSI Floorplanning with adjacency requrements

Interconnection graph VLSI floorplan

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

Interconnection graph VLSI floorplan

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

Interconnection graph VLSI floorplan

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

AB

E

C

F

G

D

Interconnection graph VLSI floorplan

Dual-like graph

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

AB

E

C

F

G

D

AB

E

C

F

G

D

Interconnection graph VLSI floorplan

Dual-like graph Add four corners

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

AB

E

C

F

G

D

AB

E

C

F

G

D

Interconnection graph VLSI floorplan

Dual-like graph Add four corners

Rectangular drawing

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

Interconnection graph VLSI floorplan

Rectangular drawing

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

EA

B

C

F

G

D

AB

EC

F

G

D

VLSI FloorplanningVLSI Floorplanning

Interconnection graph VLSI floorplan

Rectangular drawing

Unwanted adjacency

Not desirable for MCM floorplanning andfor some architectural floorplanning.

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

A

B

E C

F

G

D

MCM FloorplanningMCM Floorplanning SherwaniSherwani

Architectural FloorplanningArchitectural Floorplanning Munemoto, Katoh, ImamuraMunemoto, Katoh, Imamura

EA

B

C

F

G

D

Interconnection graph

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

A

B

E C

F

G

D

MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning

EA

B

C

F

G

D

Interconnection graph

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

MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning

A

E

B

FG

CD

EA

B

C

F

G

D

Interconnection graph

Dual-like graph

A

B

E C

F

G

D

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

MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning

A

E

B

FG

CD

EA

B

C

F

G

D

Interconnection graph

Dual-like graph

A

B

E C

F

G

D

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

MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning

A

E

B

FG

CD

EA

B

C

F

G

D

A

E

B

FG

CD

Interconnection graph

Dual-like graph

A

B

E C

F

G

D

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

MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning

A

E

B

FG

CD

EA

B

C

F

G

D

A

E

B

FG

CD

Box-Rectangular drawing

Interconnection graph

Dual-like graph

A

B

E C

F

G

D

dead space

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

Floorplanning with Area Requirements

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

Octagonal Drawing

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

Prescribed-Area Octagonal Drawing

InputPlane graph

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

K 27

G 19A 46

C 11

J 14

I 12

B 65

D 56

E 23

F 8

H 37

Prescribed-Area Octagonal Drawing

InputPlane graph

A real number for each inner face

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

K 27

G 19A 46

C 11

J 14

I 12

B 65

D 56

E 23

F 8

H 37

A 46

B 65

C 11D 56

E

23

F 8

H 37

G 19

I 12 J 14

K 27

Prescribed-Area Octagonal Drawing

Input Output

Plane graph Prescribed-area octagonal drawingA real number for each inner face

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

K 27

G 19A 46

C 11

J 14

I 12

B 65

D 56

E 23

F 8

H 37

A 46

B 65

C 11D 56

E

23

F 8

H 37

G 19

I 12 J 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.

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

K 27

G 19A 46

C 11

J 14

I 12

B 65

D 56

E 23

F 8

H 37

A 46

B 65

C 11D 56

E

23

F 8

H 37

G 19

I 12 J 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.

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

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

ApplicationsVLSI Floorplanning

It is desirable to keep the shape of each rectilinear polygon as simple as possible.

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

Our Results

G: a good slicing graph

O(n) time algorithm.

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

Slicing Tree

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

Slicing Tree

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

root

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

Good Slicing Graph

A slicing tree is good if each horizontal slice is a face path.

P

E

P P P

PP

P

P

P

P

f

f

ff

f

ff

ff

1 23

5

4

67

8

9

1

2

34

5

6

7

8

9

10f

P

P

N

S

W

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

P

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

Three face paths

On a boundary of a single face

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

Not a face path

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

Good Slicing Graph

A slicing tree is good if each horizontal slice is a face path.

P P P

PP

P

P

P

P

f

f

ff

f

ff

ff

1 23

5

4

67

8

9

1

2

34

5

6

7

8

9

10f

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

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

Good Slicing Graph

A slicing tree is good if each horizontal slice is a face path.

P P P

PP

P

P

P

P

f

f

ff

f

ff

ff

1 23

5

4

67

8

9

1

2

34

5

6

7

8

9

10f

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

We call a graph a good slicing graphif it has a good slicing tree.

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

Good Slicing Graph

For a horizontal slice, at least one of the upper subgraphand the lower subgraph cannot be vertically sliced.

Cannot be vertically sliced

Can be vertically sliced

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

Not every slicing graph is a good slicing graph.

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

Input

P P P

PP

P

P

P

P

f

f

ff

f

ff

ff

1 23

5

4

67

8

9

1

2

34

5

6

7

8

9

10f

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

A Good Slicing Graph

A Good Slicing Tree

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

Output

Prescribed-areaOctagonal 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 11D 56

E

23

F 8

H 37

G 19

I 12 J 14

K 27

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

Octagons8 corners

6 corners 4 corners

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

OctagonsA 46

B 65

C 11D 56

E

23

F 8

H 37

G 19

I 12 J 14

K 27

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

Do not appear

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

Feasible Octagons

Octagons of nine shapes must satisfy some conditions on size

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

First traverse root

Algorithm

Then traverse the right subtree

Finally, traverse the left subtree

Depth-first search

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P1

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P1

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P2

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P3

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P3

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

P4

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

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

P : V1

P : V2

P : H4

P : H3P : H7P : H9

P : H8

P : V5

P : H6

f9f10

f8

f6f7

f4

f3 f2

f5

f1

Algorithm

f

f

ff

f

ff

ff

1

2

34

5

6

7

8

9

10f

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

Algorithm

Initialization at root

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

Algorithm

Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).

A(G): sum of the prescribed areas of all inner faces in G.

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

Algorithm

Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).

A(G): sum of the prescribed areas of all inner faces in G.

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

Algorithm

Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).

A(G): sum of the prescribed areas of all inner faces in G.

59

15

8

46081595)( GA

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

Algorithm

Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).

A(G): sum of the prescribed areas of all inner faces in G.

59

15

8

W = 23

H = 20

46081595)( GA 2023

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

Algorithm

Initialization at rootDraw 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.

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

Root : vertical sliceOperation at root

Algorithm

A(G)

Pr : V

Pv : VPw : V

r

vw

A(Gv)A(Gw)

Pr

A(Gw) A(Gv)

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

Root : vertical sliceOperation at root

Algorithm Pr : V

Pv : VPw : V

r

vw

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

Root : vertical sliceOperation at root

Algorithm Pr : V

Pv : VPw : V

r

vw

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

Root : vertical sliceOperation at root

Algorithm Pr : V

Pv : VPw : V

r

vw

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

Root : vertical sliceOperation at root

Algorithm Pr : V

Pv : VPw : V

r

vw

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

Root : vertical sliceOperation at root

Algorithm Pr : V

Pv : VPw : V

r

vw

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

Root : horizontal sliceOperation at root

AlgorithmPr : H

Pv : VPw : V

r

vw

RA(Gv)

A(Gw)

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

Root : horizontal sliceOperation at root

AlgorithmPr : H

Pv : VPw : V

r

vw

A(Gw)

A(Gv) R

Case 1: A(Gv) = A(R)

A(Gv)

A(Gw)

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

Root : horizontal sliceOperation at root

Algorithm

A(Gw)

A(Gv)

Case 2: A(Gv) > A(R)

RA(Gv)

A(Gw)

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

Root : horizontal sliceOperation at root

Algorithm Case 3: A(Gv) < A(R)

Case 2: A(Gv) > A(R)

A(Gw)

A(Gv)A(Gv)

A(Gw)

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

Root : horizontal sliceOperation at root

Algorithm

6 corners A(Gw)

A(Gv)

Case 3: A(Gv) < A(R)

Case 2: A(Gv) > A(R)

A(Gw)

A(Gv)A(Gv)

A(Gw)

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

Polygon of exactly 8 corners may appearwhen a horizontal slice is embedded insidea polygon of 6 corners.

6 corners

8 corners

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

Pu : V

Pv : VPw : V

u

vw

General computation at an internal node

Feasible Octagon

Ru

Vertical slice

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

Pr : V

Pv : VPw : V

u

vw

General computation at an internal node

Feasible Octagon

Ru

Vertical slice Fixed

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

Pr : V

Pv : VPw : V

u

vw

General computation at an internal node

Feasible Octagon

Ru

Vertical slice FixedFace

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

Pr : V

Pv : VPw : V

u

vw

General computation at an internal node

Feasible Octagon

Ru

Embed the slicing path in Ru

Vertical slice

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

Pr : V

Pv : VPw : V

u

vw

General computation at an internal node

Feasible Octagon

Ru

Vertical slice

Feasible Octagon

Rv

Feasible Octaon

Rw

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

A(Gv )

A(Gw)

A(Gv) A(Gv)

A(Gw)

Large

10 corners

Horizontal slice

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

very small foot-lenght

Ru

Pu

fA(Gv)

10 corners

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

very small foot-lenght

Ru

Pu

f

Hf

Aminf number of inner faces in G

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

very small foot-lenght

Ru

Pu

f

Hf

Aminf number of inner faces in G

K 27

G 19A 46

C 11

J

14

I 12

B 65

D 56

E 23

F 8H 37

Input

Amin

Amin = 8

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

very small foot-lenght

Ru

Pu

f

Hf

Aminf number of inner faces in G

H height of initial rectangle Rr

Input at root Rr

A(R ) = A(G)r

H=20

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

very small foot-lenght

Ru

Pu

f

Hf

Aminf number of inner faces in G

K 27

G 19A 46

C 11

J

14

I 12

B 65

D 56

E 23

F 8H 37

Input

Amin

Amin = 82015

8

A(R ) = A(G)r

H=20

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

very small foot-lenght

Ru

Pu

f

Hf

Aminf number of inner faces in G

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

very small foot-lenght

Ru f

large enough

East side

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

very small foot-lenght

Ru f

large enoughEf

East side

Ef The number of inner faces each of which has an edge on the east side.

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

Computation at a leaf node

PE

PW

PS

NP

PE

PW

PS

NP

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

Time Complexity

Overall time complexity is linear.

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

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.

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