18
Computer Languages, Systems & Structures 34 (2008) 25 – 42 www.elsevier.com/locate/cl A generic, formal language-based methodology for hierarchical floorplanning-placement Nikolaos G. Bourbakis Wright State University and AIIS Inc., USA Abstract Floorplanning in 2-D or 3-D space is always a difficult and time consuming problem for automated manufacturing, storaging, civil engineering design and especially for the physical layout design cycle of the chip design automation. In particular, the physical layout cycle itself consists of several steps, such as partitioning, floorplanning, placement, synthesis, routing, and compaction, where the right placement of the appropriate components is the most important element of performance. In this paper, a generic floor-planning methodology is presented by offering a good solution to such problems. The methodology is based on the hierarchical cooperation of two context-free languages (Scan and Geometria). In order to achieve an acceptable planning, the Scan language defines the partitioning of the floor area and the global acquisition strategy (scan patterns) for the placement of the macro-blocks. On the other hand, the Geometria language deals with the local synthesis of the block under the constraints superimposed by global scan patterns. The results obtained by this methodology are very promising in comparison with other floorplanning methodologies. © 2006 Elsevier Ltd. All rights reserved. Keywords: Design synthesis tools; Context-free languages; Floorplanning; Scan language; Geometria language 1. Introduction Floorplanning is one of the important steps for a variety of engineering and manufacturing processes, but especially in the VLSI circuits designs [1–5]. It deals with the selections of alternative layouts by arranging appropriately a set of rectangular blocks or boxes at both modular and overall chip design levels. Floorplanning is usually performed in a hierarchical manner due to the dimensions of the selected area and block’s size, and for a better global control of the overall placement process [6]. Several floorplanning algorithms have been developed during the last decade [7–20,1]. Some of them can obtain optimal floorplans under certain constraints, such as removal of redundant topological constraint’s adjustment of aspect ratios of flexible blocks [8], etc. Some others, such as FOLM, are suitable for Sea of Gates (SOG) arrays and are based on a frame overlapping floorplan model, which is free from inter-block channels [9]. Some others use a framework for hierarchical floorplanning with integrated global wiring which requires three phases, cut-tree generation, floorplan Tel.: +1 937 775 5138. E-mail address: [email protected]. 1477-8424/$ - see front matter © 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.cl.2006.08.001

A generic, formal language-based methodology for hierarchical floorplanning-placement

Embed Size (px)

Citation preview

Page 1: A generic, formal language-based methodology for hierarchical floorplanning-placement

Computer Languages, Systems & Structures 34 (2008) 25–42www.elsevier.com/locate/cl

A generic, formal language-based methodology for hierarchicalfloorplanning-placement

Nikolaos G. Bourbakis∗

Wright State University and AIIS Inc., USA

Abstract

Floorplanning in 2-D or 3-D space is always a difficult and time consuming problem for automated manufacturing, storaging, civilengineering design and especially for the physical layout design cycle of the chip design automation. In particular, the physical layoutcycle itself consists of several steps, such as partitioning, floorplanning, placement, synthesis, routing, and compaction, where theright placement of the appropriate components is the most important element of performance. In this paper, a generic floor-planningmethodology is presented by offering a good solution to such problems. The methodology is based on the hierarchical cooperationof two context-free languages (Scan and Geometria). In order to achieve an acceptable planning, the Scan language defines thepartitioning of the floor area and the global acquisition strategy (scan patterns) for the placement of the macro-blocks. On the otherhand, the Geometria language deals with the local synthesis of the block under the constraints superimposed by global scan patterns.The results obtained by this methodology are very promising in comparison with other floorplanning methodologies.© 2006 Elsevier Ltd. All rights reserved.

Keywords: Design synthesis tools; Context-free languages; Floorplanning; Scan language; Geometria language

1. Introduction

Floorplanning is one of the important steps for a variety of engineering and manufacturing processes, but especiallyin the VLSI circuits designs [1–5]. It deals with the selections of alternative layouts by arranging appropriately a setof rectangular blocks or boxes at both modular and overall chip design levels. Floorplanning is usually performed in ahierarchical manner due to the dimensions of the selected area and block’s size, and for a better global control of theoverall placement process [6].

Several floorplanning algorithms have been developed during the last decade [7–20,1]. Some of them can obtainoptimal floorplans under certain constraints, such as removal of redundant topological constraint’s adjustment of aspectratios of flexible blocks [8], etc. Some others, such as FOLM, are suitable for Sea of Gates (SOG) arrays and are basedon a frame overlapping floorplan model, which is free from inter-block channels [9]. Some others use a frameworkfor hierarchical floorplanning with integrated global wiring which requires three phases, cut-tree generation, floorplan

∗ Tel.: +1 937 775 5138.E-mail address: [email protected].

1477-8424/$ - see front matter © 2006 Elsevier Ltd. All rights reserved.doi:10.1016/j.cl.2006.08.001

Page 2: A generic, formal language-based methodology for hierarchical floorplanning-placement

26 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

sizing and floorplan computation [10]. Global floorplanning algorithms are used based on 2-D partitioning to handlethe both fixed and flexible rectangular blocks [11]. Others use recursive partitioning methods, such as slicing andnon-slicing trees for a better floorplanning layout which requires less implementation time [12,13].

In addition, a comparison of high-level synthesis and register level design techniques for CCMs is given in [21], wherethe HLS tools produce not very different designs for the RTL level manual design. A source-level dynamic analysismethod-tool for HLS is presented in [22] used for the successful design of a microcontroller with 300+ instructionswith Matrisse. Also, a GA based algorithm was proposed in [23] for synthesis of structured data paths. A high-levelpre-synthesis optimization using the hierarchical conditional dependency graph as representation scheme is proposedin [24] with good synthesis results.

In this paper, we propose a generic floorplanning methodology, which combines features, such as flexibility andcompact placement, from available floorplanning methodologies and at the same time it considers several other floor-planning methods such as simple subcases of itself since they can be combinations of its own subplans. This floor-planning methodology is based on the hierarchical cooperation of two formal languages (Scan and Geometria) whichperform several tasks on a 2-D array grids [25,14,26]. More specifically, the Scan language has the ability to generate(n×n)! permutations (space filling curves, or scan patterns) from a set of simple ones. These scan patterns define globalpartitioning of the floor area by following a global acquisition strategy (scan patterns) for the placement of the macro-blocks. The Geometria language deals with the local arrangement and synthesis of the blocks under the constraintsimposed by global scan patterns and uses four letters synthesis alphabets. The global–local use of these two algorithmiclanguages provides the ability of generating of a great number of different floorplans under various considerations oftime, space and performance driven constraints. The selection of the optimal floorplans, for a particular set of blocks,is obtained by the use of a genetic algorithm or a neural network [15].

This paper is organized into six sections. Section 2 provides some useful notations and definitions. Section 3describes briefly the Scan language. Section 4 presents the Geometria language. Section 5 discusses the global–localgeneric floorplanning methodology and illustrates several examples from its use. Section 6 concludes the overallpresentation.

2. Notations and definitions

In this section a number of definitions and notations are given to assist the understanding of the following sections.

Definition 1. SLP is defined as the entire surface covered by a layout placement of blocks:

SLP =⎧⎨⎩(⋃

i=1

N(i)

)⋃⎛⎝⋃

j=0

H(i)

⎞⎠⎫⎬⎭ , i, j ∈ Z+, (1)

where N(i), H(j) represent a “macro-block” and an “open hole” respectively.

Definition 2. A macro-block N(i), i ∈ Z+, is defined as the square area occupied by a block with certain dimensions:

N(i)= {GP(i), h(i), w(i), SN(i)}, (2)

where GP(i), h(i), w(i), SN(i) represent the geographical position of N(i) in SLP, the height of N(i), the width ofN(i) and the square area occupied by N(i), respectively.

Definition 3. An open hole H(j) is defined as the surface inside the layout area which is occupied by no macro-blocks:

H(j)= {GP(j), Sh(H(j)), E(H(j))}, j ∈ Z, (3)

where GP(j), Sh(H(j)), E(H(j)), x(j) represent the geographic position, the shape, and the occupied layoutsurface.

Page 3: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 27

Definition 4. The shape Sh(X) of the layout surface E(X) can be defined as

Sh(X)= b1dj1b2dj2 · · · bmdjm, (4)

where X represents a block; bi ∈ Z+, dji ∈ {1, 2, 3, 4, 5, 6, 7, 8} represent the directions of the coding scheme below,and i = 1, 2, . . . , m:

1

2

3

4

5

6 7

8

Definition 5. A straight line segment Sk is defined as

Sk = bi1dji1 . . . bindjin, (5)

such that dji1 = · · · = djin with k, n, in, j in ∈ Z+.

Notation 1. Based on Definition 4, the Sh(X) can be expressed as

Sh(X)= S1Rc12S2R

c23 · · · Sk−1R

c(k−1)kSkR

ck1S1, (6)

where Rcij represents the connectivity relationship between two consecutive straight line segments Si, Sj :

Rcij =

∧q(djik, dji(k+1))

is the angle between these djik, dji(k+1) directions.

Notation 2. P Yi is the set of the properties of a straight line segment Si :

P Yi = {starting point (spi), size (si), direction (dji)}, (7)

where y ∈ {spi, si , dji}.

Notation 3. Rtij is the set of the relationships among line segments.

Rtij = {Rc, Rpa, Rd, Rsy, Rsm, Rrm, Rrl, RGP }, t ∈ {c, pa, d, sy, sm, rm, rl, GP }, (8)

where c, pa, d, sy, sm, rm, rl, GP represent the connectivity, parallelism, distance, symmetry, similarity, relativemagnitude, relative location, and the geographic position, respectively.

Notation 4. Using Notations 2–4 the Sh(X) can be expressed as a graph G(X) with attributes:

z : {Sh(X)} −→ {G(X)}, (9)

where z(Si, PYi ) =Mi, Mi represents a graph node with the attributes of the shape of a block. z{Rt

ij } = aij , with aij

the arrow between two graph nodes which represents the relationships among the graph nodes.

Notation 5. The general form of a graph used here is

G(X) = (Mi, aij ), (10)

Page 4: A generic, formal language-based methodology for hierarchical floorplanning-placement

28 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

where represents the global synthesis operator and G(X) can be expressed as

G(Xn)=Mn1 an

12Mn2 an

23Mn3 · · ·Mn

k−1an(k−1)kM

nk an

k1Mn1 , (11)

for graph G(Xn) with k nodes.

Definition 6. The number lj of nodes Mi , excluding their repetition in a graph G(Xj ), defines the length of G(Xj ).

Definition 7. Two graphs G(X1), G(X2) are identical if and only if

(i) they have the same lengths l1 = l2;(ii) ∀Mi ∈ G(X1) and Mj ∈ G(X2), Mi =Mj for i = j ;

(iii) all the arrows akm ∈ G(X1), a′km ∈ G(X2) are akm = a′km; and

(iv) X1 =X2.

Notation 6. A graph G(X) remains the same if its nodes Mi and its arrows akn are rotated by the same direction.

3. The Scan language

In this section a brief description of the Scan language is given [25]. Scan is used here as a global partitioning strategy,by using the size of the macro-blocks as a guide-pixel, and its patterns for the determination of a “best” floorplanningplacement.

3.1. Definition

Definition 8. A floorplan could be considered as a 2-D array (Pnn) of cells

P(i, j), Pnn= {P(i, j)/1× i, j × n, P (i, j) ∈ [0, 2k], k ∈ Z+}.For all the cells of a floorplan to be accessed sequentially only once (no double accessing of any element) an appropriatealgorithm, or scanning method, is needed.

Definition 9. A scanning (or accessing) method Sp, n ∈ Z+ is defined as a sequential collection of the 4k cells ofPnn, 0× k × log2(n), by following a defined or formulated order:

Sp = {[P(i, j) . . . P (r, q)] : 1× i, j, r, q × n}without a re-access of the same cell twice or more by a pattern. Thus, the scan order is defined by an algorithm.

Notation 7. The total number of all scanning patterns (or permutations) of a 2-D grid of n× n cells is (n× n)!

3.2. The Scan grammar

Definition 10. The Scan grammar is context-free and defined as G=(Vn, Vt , F, S), where Vn is the set of non-terminalsymbols of the grammar Vn = {S, T , k, L, I }.

Vt is the set of terminal symbols of G : Vt =�U{i/i ∈ Z+}U{#}, where � is the Scan alphabet, S is the start symbolof the grammar G, P is the set of production rules:

• S → T

• S → T #S,• T → Lk,• L→ L(1)/L(2)/ · · · /L(t), t ∈ Z+, 0� t � log2n,• k→ 2I and I ∈ Z+.

Page 5: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 29

(a) (b) (c)

(e) (f)

(h)

(d)

(g)

Fig. 1. Graphical representation of the Scan primitive patterns: (a) letter R, raster scanning; (b) letter C, Continued raster scanning; (c) letter A:right orthogonal scanning; (d) letter I, Spiral in scanning; (e) letter O, Spiral out scanning; (f) letter L, Continued orthogonal scanning; (g) letter Z,Z-scanning; (h) Letter B, Block scanning.

The symbol # represents the composition operator which contributes in the generation of the Scan words (patterns).The grammar G generates a context-free language L(G), called Scan.

Definition 11. A Scan word wt ∈ L(G) generated by the grammar G is defined as

wt = La(1)2I 1#La(2)2I 2# · · · #La(t)2I t , (12)

where t represents the length of wt with t ∈ Z+, 0� t � log2n, and n× n is the dimension of the array.

La(i) ∈ �, Ii ∈ Z + and (2I 1)(2I 2) · · · (2I t)= n. (13)

Example. A word w3= L(2)23#L(4)21#L(1)24 has length t = 3.

3.3. A simplified specific Scan alphabet

The development of a specific Scan language provides an efficient approach to the problem of modeling and generatingall the 2-D accessing algorithmic patterns of a grid of n × n cells. A specific application oriented alphabet has beendeveloped [25], which consists of 15 Scan ”letters”. Here we use only eight letters of them:∑

={R, C, A, I, O, L, Z, B}.

Note that each “letter” (or symbol) of the alphabet represents a scan order (or algorithm) which can scan the elementsof a 2-D grid. Fig. 1 visually shows the eight letters selected from the Scan alphabet.

Page 6: A generic, formal language-based methodology for hierarchical floorplanning-placement

30 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

4. The Geometria language

The local placement and manipulation of the graph representations of the macro-blocks is efficiently handled bya context-free language called Geomatria [14]. The formal representation of the Geometria language is given in thissection based on the model of a context-free language.

4.1. Definition

The Geometria language is generated by a context-free grammar:

G= (Ns, Ts, Pr , Ss).

• Ns is the set of non-terminal symbols and is defined as

Ns = {G(x), Ss, operations}, with z{Sh(x)} =G(x), and x ∈ {N(i), H(j)},operations= {elimination, extension, positioning, partitioning, rotation, synthesis}.

• Ts is the set of terminal symbols:

Ts = {operators, ε, Mi, aij , x} ∪ �,

operators = {, ,⊕, �, �,R,}

.

• Ss is the starting symbol.• Pr is the set of the production rules:

◦ Ss�ε

◦ Ss�G(x)

◦ Ss�G(x){operation}◦ Ss�G(x)[operator]Ss

◦ Ss�G(x){operation}Ss

◦ G(x)�G(xi), i�1/2/3/4/ · · · /k,• where ε is the unique graph.• � is the primitive alphabet:

�= {Mi/Mi = {h, w, v, u}, i ∈ Z},where h and v represent the vertical straight line segments with directions ↑ and ↓, respectively, w and u representthe horizontal straight line segments with direction→ and←, respectively.

4.2. Operations

In this section descriptions of the basic operations of the Geometria are provided.

• Elimination operation is shown by the operator . This operation will act like a “subtraction” operation. It willcreate a new side by placing smaller side on top of the bigger side, and a new side (function) will be generated. Thegraphical and mathematical representation of elimination operation is shown below:

• Extension operation is shown by the operator ⊕. This operation will act like a “addition” operation. It will create anew side by placing smaller side on the right end-edge of the bigger side, and a new side (function) will be generated.

Page 7: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 31

The graphical representation of extension operation is shown below:

• Positioning operation is shown by the operator �. This operation will place one side of a block on top of the other.The graphical representation of extension operation is shown below:

• Rotation operation is shown by the operator R. The main purpose of rotation operation in Geometria language isto help fitting a block into an open hole. This operation will rotate a block by certain angles such as 90 ◦, 180 ◦, and270 ◦in either clockwise (−) or counter-clockwise (+) directions. It should be noted that in the future these angles willbe implemented and rotated by step of 45 ◦. However, for the purpose of simplicity, our concern will be the rotationby step of 90 ◦. It should be also noted that by rotating a block, the functionality of the block will not change. Thegraphical representation of rotation operation can be shown by

• Synthesis: There is a set of four primitive synthesis patterns which makes two blocks connected to each other andwill generate a new shape of the block. The synthesis patterns are:◦ Synthesis

( )of two nodes (or blocks) into L shape:

G(N(1) N(2)) = M121 a12

12M122 a12

23M123 a12

34M124 a12

45M125 a12

56M126 a12

61M121 ,

M121 = M1

1 ; M122 = M1

2 ;

M123 =

(M1

3 M21

); M12

4 = M22 ;

M125 = M2

3 ; M126 = (M1

4 ⊕M24 ).

Page 8: A generic, formal language-based methodology for hierarchical floorplanning-placement

32 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

◦ Synthesis of two nodes (or blocks) into T shape:

G(N(1) N(2))

= M121 a12

12M122 a12

23M123 a12

34M124 a12

45M125 a12

56M126 a12

67M127 a12

78M128 a12

81M121 ,

M121 = M1

1 ; M122 = X; where X is the displacement of N1 on N2

M123 = M2

1 ; M124 = M2

2 ;

M125 = M2

3 ; M126 = M2

4 (M122 ⊕M1

2 );

M127 = M1

3 ; M128 = M1

4 .

◦ Synthesis of two nodes (or blocks) into I shape:

Page 9: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 33

G(N(1) N(2)) = M121 a12

12M122 a12

23M123 a12

34M124 a12

41M121 ,

M121 = M1

1 ⊕M21 ; M12

2 = M22 ;

M123 = M1

3 ⊕M23 ; M12

4 = M14 .

◦ Synthesis of two nodes (or blocks) into a � shape:

G(N(1) N(2)) = M121 a12

12M122 a12

23M123 a12

34M124 a12

45M125 a12

56M126 a12

67M127 a12

78M128 a12

81M121 ;

M121 = M1

1 ; M122 = X;

where X represents the overlapping between nodes M12 and M2

4 :

M123 = M2

1 ; M124 = M2

2 ;

M125 = M2

3 ; M126 = M2

4 ,(M1

2 M122

);

M127 = M1

3 ; M128 = M1

4 .

• Partitioning operation is shown by the operator �. This operation will partition a large area into 4k, k ∈ Z, equalsub-areas.

Page 10: A generic, formal language-based methodology for hierarchical floorplanning-placement

34 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

1

2

4

5

67

8

3

Fig. 2. Macro-blocks placement by using the spiral Scan pattern (right).

5. Floorplanning methodology

In this section we present the methodology for the placement and synthesis of macro-blocks at the floorplanninglevel, its computational complexity, and experimental results.

5.1. Methodology

The floorplanning methodology presented here is based on the interactive cooperation of the two formal languagespresented in previous sections. More specifically, the floorplanning methodology starts with the specifications of thefloor area, the size of the blocks, the order of their placements, etc. Then the Scan language partitions the floor area byusing the largest macro-block as a guide-cell and creates a 2-D grid. Then it defines the scan patterns which will beused for the initial global pseudo-placement of the blocks with the minimum possible occupied area. This means thatthe Scan language drives the global floorplanning of the blocks as shown in Fig. 2.

At this point Geometria takes the control of the local placement of the macro-blocks by using its own synthesisrules among these blocks, without violating the global constraints placed by the original specifications and the Scanlanguage. In particular, as it is shown in Fig. 2, Geometria uses the L rule for the final placement of the pair blocks(1,2), (2,3), (3,4); the T rule for (4,5); the L-rule for (5,6); the T-rule for (6,7); and L-rule for (7,8). During the localplacement of the blocks, Geometria is checking for possible overlapping among the blocks in the same neighborhood.If any overlappings occur then the placement of the unfitable block is rejected and a new region is found for itsplacement, if any, based on the partitioning of the entire floor area. In cases where the neighborhood property (constraint)has to be maintained among the blocks, if this property is violated then Geometria stops the local placement ofthe blocks and interactively asks from the Scan language another scan pattern more appropriate for the placementof the blocks. This particular feature of the floorplanning methodology makes it flexible and powerful at the sametime it has the ability to adapt its own global floorplanning strategy based on the constraints of the placement. Inaddition, this methodology provides a variety of possible global pseudo-placement strategies which present differentadvantages one versus the others. For instance, some strategy requires less space but more time, some other occupiesmore space but needs less time, etc. The global diagram of the hierarchical floorplanning methodology is shownin Fig. 3.

It is also important to mention that the implementation of this floorplanning methodology can be done by either aserial hierarchical manner (see Fig. 4) or a parallel one [14].

5.2. Computational complexity

The computational complexity of the methodology for the worst-case scenario is presented here, in particular thesynthesis of a rectangular block with a rectilinear polygon (for simplicity let us assume a rectangle). Geometria checks

Page 11: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 35

InputSpecs

SCANLanguage

GlobalPlanningStrategy

GeometriaLanguage

Implementationof the Strategyat the locallevel

If theimplementationis successfulthen

Output theperformance ofthe strategy

No

Yes

Fig. 3. The Scan–Geometria hierarchical floorplanning strategy.

1 23

4

5

6

7

8

A

B

C

D

E

F

GG

87

654

321

A

E

B D

F

C

Fig. 4. The serial and parallel hierarchical placement.

five possible cases as shown below:

The number of operations performed for each synthesis is: � = 2, L = 2, T = 5.Thus, the maximum number of operations performed at each edge is

Max_op = (2 ∗ �+ 2 ∗ L+ T) ∗ 2 = 26 (14)

and the maximum number of new edges created by each synthesis operation is

Max_edge = 4. (15)

Page 12: A generic, formal language-based methodology for hierarchical floorplanning-placement

36 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

Fig. 5. Worst-case complexity of Wong-92, Sahni-93 and Geometria-95.

Fig. 6. Actual number of operations for I-pattern, O-pattern, and worst-case Geometria.

Thus, the maximum number of operations performed for n number of blocks is

N1 ∗[

n ∗ (n − 1)

2

], (16)

where N1=Max_op ∗Max_edge.Thus, the complexity of the Geometria is ≈ KO(n2).Fig. 5 and 6 show the Geometria worst-case complexity in comparison with Sahni93 and Wong92 [12,13].

Page 13: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 37

The main conclusions extracted from Figs. 5 and 6, are:

(i) Although, at the local level Geometria uses only simple operations to recursively (serial manner) synthesizeblocks, its worst-case complexity performs better than Wong algorithm [13].

(ii) The parallel implementation of the Geometria floorplanning provides a better performance.

The incorporation of the Scan language for the final floorplanning placement of the macro-blocks changes theworst-case complexity as follows:

Let m2 be the number of partitions of a surface floor area. Then, the Scan language complexity by itself is O(m2).It should be noted that the partition takes place if and only if the size of the largest block is

size(largest{block})�size(partition{cell}). (17)

Thus, at each partition the complexity is

O

([ nm2

]2)

, (18)

therefore, the complexity for calculating the floor layout placement area is

O

(( nm2

)2 ∗m2)= O

( nm

)2. (19)

In order to improve the overall complexity n2/m2 < n2 �m2 > 1, the size of the m-partitions can be determined by

(SLP )/m2 �Sm �m2 �(SLP )/Sm, (20)

where Sm is the area occupied by each partition cell, Sm = LmxWm, with aspect ratio (AR) AR= Lm/Wm. From theabove equations the following can be generated:

m2 �(SLP )/(AR ∗W 2m)�(SLP )/(ARmax ∗W 2

m), (21)

thus

m�([SLP ]/[ARmax ∗W 2m])1/2. (22)

However, m= 4N , where N = 0, 1, 2, 3, . . ., then Eq. (22) can be

0�N �(1/(2 ∗ ln 4) ∗ [ln(SLP )− (ln(ARmax)− 2 ∗ ln(Wmax)]. (23)

5.3. Experimental results

Results from the implementation of the floorplanning methodology (written in C + +) are shown in this sec-tion by using a set of illustrative examples. For these examples, a set of 126 blocks were used and placed in thesame area under different global scan patterns as follows. The Scan language selects the larger box and partitionsthe placement surface. Then, the Scan language produces placement plans by taking into account the functionalbehavior of each block, the number of connection wires between blocks, the frequency of communication amongthe blocks and their relative position on the surface (for instance I/O blocks go at the periphery of the placementarea).

Page 14: A generic, formal language-based methodology for hierarchical floorplanning-placement

38 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

5.3.1. Floorplanning layoutsThe floorplanning layouts obtained by using the A, B, C, I, L, O, R, Z, ZI, ZO, CZB Scan patterns and the Geome-

tria synthesis placement are graphically shown below. These examples are provided to show the variety of differentfloorplanning placements that the methodology offer to the user.

Page 15: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 39

5.3.2. Timing of the floorplanning layoutsThe timing required for the floorplanning layouts presented above by using the SCAN A, B, C, I, L, O, R, Z, ZI, ZO,

CZB is shown below. These examples present the time required for each particular floorplanning placement.

Page 16: A generic, formal language-based methodology for hierarchical floorplanning-placement

40 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

Letter A Letter B

Letter ILetter C

Letter L Letter O

Time (sec) Time (sec)

Time (sec)Time (sec)

Time (sec) Time (sec)

# o

f b

lks

# o

f b

lks

# o

f b

lks

# o

f b

lks

# o

f b

lks

# o

f b

lks

020406080

100120140

0 0.5 1 1.50

20406080

100120140

0 0.2 0.4 0.6 0.8 1

020406080

100120140

0 0.5 1 1.5 20

20406080

100120140

0 1

020406080

100120140

0 0.2 0.4 0.6 0.80

20406080

100120140

0 0.5 1 1.5 2 2.5

2 3

Letter R Letter Z

Letter ZI

Letter CZB

Letter ZO

020406080

100120140

0 0.5 1 1.5 20

20406080

100120140

0 0.2 0.4 0.6 0.8

020406080

100120140

0 0.5 1 1.5 20

20406080

100120140

0 0.5 1 1.5 2

020406080

100120140

0 0.5 1 1.5

Time (sec) Time (sec)

Time (sec)Time (sec)

Time (sec)

# o

f b

lks

# o

f b

lks

# o

f b

lks

# o

f b

lks

# o

f b

lks

Page 17: A generic, formal language-based methodology for hierarchical floorplanning-placement

N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42 41

5.3.3. Comparative results

Letters NBlocks PBlocks X-max Y-max OA GAP OH Partns

A 114 154 670 639 319 203 841 0 49 171 16B 117 157 720 639 319 Same 0 46 121 16C 115 154 845 635 310 196 850 6991 42 005 4I 124 170 970 637 305 194 285 9556 23 315 1L 119 162 195 639 319 203 841 0 41 646 16O 120 164 095 636 315 200 340 3501 36 245 1R 118 158 870 639 310 198 090 5751 39 220 4Z 119 160 445 635 316 200 660 3181 40 215 16ZI 116 150 495 639 315 201 285 2256 50 790 4ZO 124 170 970 630 310 195 300 8541 24 330 4CZB 117 157 720 639 319 203 841 0 46 121 16

NBlocks: No. of blocks placed; PBlocks: Total area of blocks placed (square units); OA: Total area occupied (square units); GAP: OA–A (square

units); OH; Open hole (square units); Partns: No. of partitions; Ab: Available no. of blocks = 126; A: Available area (square units) = 203 841 su.

6. Conclusion

In this paper a generic hierarchical floorplanning methodology was presented. The formal modelings of the method-ology as well as its algorithmic steps were described. The presented tool (methodology) is written in C + +. Theautomation floorplanning methodology is based on the cooperation of two context-free languages (Scan and Geome-tria), which assists the user to command the tool for the floorplan layout design. The floorplanning methodology presentsa number of significant features, such as hierarchical serial and parallel implementation of the floorplanning layouts;flexibility and adaptability during the block’s placement by using the Geometria’s local placement rules, which candecide which global strategy fits well with the block special features, such as size, functionality, neighborhood, etc.;it is a generic methodology which can consider several other floorplannings as simple subcases, such as the recursivefloorplanning algorithms proposed in [12,13] can be considered as a combination of the I and O patterns.

The floorplanning methodology provides some very promising results, which makes it a useful CAD tool. The useof genetic algorithms and neural networks to assist the overall search process is in progress.

Applications of the floorplanning methodology can be found (1) in VLSI macro-blocks placement, (2) compactplacement of boxes in 3D storage space, (3) mechanical parts placement for automated design. For these applications,the SCAN language will provide one or more global placement strategies to Geometria, and the Geometria languagewill attempt to perform the local placement if possible under the local constraints, or request (in an interactive way) fromthe SCAN language to provide new global placements, which may satisfy the Geometria’s local placement constraints.This interactive automated way of global–local placement may offer a variety of floorplanning solutions with differentspace capabilities and time constraints, as they have shown in Section 5.3 experimental results. In other words, thisglobal–local floorplanning methodology automatically offers to the user a set of solutions on which the user may decideto accept a subset of them based on the criteria of less space occupied by the blocks, or the faster placement of theseblocks, or of the closest placement of certain blocks with special structural or functional characteristics.

Page 18: A generic, formal language-based methodology for hierarchical floorplanning-placement

42 N.G. Bourbakis / Computer Languages, Systems & Structures 34 (2008) 25–42

Acknowledgment

This work is partially supported by AIIS Inc. The author wishes to thank Dr. Mortazavi for his programmingcontributions to this work.

References

[1] Vijayan G, Tsay R. A new method for floorplanning using topological constraint reduction. In: IEEE transactions on CAD. 1991. p. 1494–501.[2] Gattiker J, Mertoguno S. An SPN approach for reverse engineering of digital circuits, chapter in AI and automation. Singapore: World Scientific

Publisher; 1998.[3] Marefat M, Ji Q. Hierarchical Bayesian methods for recognition of 3D features from CAD solid models. IEEE Transactions on Systems Man

and Cybernetics Part A 1997;27(6):705–27.[4] Demirham M, Ozdamar L. Integrating expert knowledge in environmental site characterization. IEEE Transactions on Systems Man and

Cybernetics Part C 2001;31(3):344–51.[5] Han J. et al. Manufacturing feature recognition toward integration with process planning. IEEE Transactions on Systems Man and Cybernetics

Part B 2001;31(3):373–80.[6] Cooke D, Andersen P. Automatic parallel control structures in SL. Software Practice and Experience 2000;30(14):1541–70.[7] Fichtner W, Morf M. VLSI CAD tools and applications. Dordrecht: Kluwer Academic Publishers; 1986.[8] Vijayan G, Tsay RS. Floorplanning by topological constraints reduction. Proceedings of ICCAD 1990;90:106–9.[9] Murofushi M, Yamada M, Mitsuhashi T. FOLM: A new floorplanner with a frame overlapping floorplan model suitable for SOG type gate

arrays. In: Proceedings of ICCAD-90. 1990. p. 140–3.[10] Lengauer T, Muller R. A robust framework for hierarchical floorplanning with integrated global wiring. In: Proceedings of ICCAD-90. 1990.

p. 148–51.[11] Herrigel A. GRCA: A global approach for floorplanning synthesis in VLSI macrocell design. In: Proceedings of ICCAD-90. 1990. p. 152–5.[12] Chong K, Sahni S. Optimal realization of floorplanning. IEEE Transactions on CAD 1993; 793–801.[13] Wang TC, Wong DF. Optimal floorplanning area optimization. IEEE Transactions on CAD 1992;I(8):992–1002.[14] Bourbakis N. GEOMETRIA: A Context-free language for VLSI synthesis and design. GMU-TR-1987, 40p.[15] Bourbakis N, Alexopoulos C. Selection of the optimal SCAN pattern for 2-D planning using genetic algorithms and neural networks. TR-1995.[16] Choi SG, Kyung CM. A floorplanning algorithm using rectangular Voronoi diagram and force-directed block shaping. In: Proceedings of

ICCAD-91. 1991. p. 56–9.[17] Ranke HC, Johannes FM. Macrocell placement by global optimization with uniform cell distribution. In: Proceedings of VLSI-89, Munich.

1989. p. 423–32.[18] Pedram M, Sadowska MM, Kuh ES. Floorplanning with pin assignment. In: Proceedings of ICCAD-90. 1990. p. 98–101.[19] Eschermann B, Dai W-M, Kuh ES, Pedram M. Hierarchical placement for macrocells: a ’meet in the middle’ approach, Digest of technical

papers, ICCAD; November 1988, p. 460–463.[20] Sutanthavilbul S, Shragowitz E, Rosen J. An analytical approach to floorplan design and optimization. In: IEEE transactions on CAD. March

1989.[21] Postula A, Abramson D, Fang Z, Logothetis P. A comparison of HLS and RTL design techniques for custom computing machines. In: Proceedings

of international conference on systems sciences. 1998.[22] Chen C-T, Kucukcakar K. A source-level dynamic analysis methodology and tool for HLS. In: Proceedings of the international symposium on

systems synthesis. 1997.[23] Mandal C, Zimmer RM. A GA for synthesis of structured data paths. In: Proceedings of the international conference on VLSI design. 1998.[24] Kountouris A. High level pre-synthesis optimization steps using HCDG. In: Proceedings of the euromicro conference. 1999.[25] Bourbakis N, Alexopoulos C, Klinger A. A parallel implementation of the SCAN language. International Journal on Computer Languages

1989;14(4).[26] Bourbakis N, Mortazavi M. A floorplanning-synthesis for multichip module design. SDPS Transactions on Integrated Design Process 2000;4(1).