**6. Moving methods for SA, 2-stage SA and MSA**

According to section 5.2, we design the following moving methods. First of all, three basic moving methods, which are named by rotation, exchange and move, are used in the focusing search. Based on the basic methods, the group rotation and the group exchange are also used as two of moving methods in the rough search. They are repeatedly used the rotation and exchange operator with a given number. The groups are randomly selected modules for rotation or pairs of modules for exchange.

**Figure 8.** An example of layout before and after "rotation" in focusing search

In detail, the rotation changes the orientation of a module. When a rotation is applied to module *mi*, *ri* is changed to 1 *- ri*. As an example shown in Figure 8, if a rotation is applied to module *m4*, *r4* is changed to 1 –*r4*. With respect to 3D packing, *ri* is randomly selected from *rxi, ry-i,* and *rz-i*.

**Figure 9.** An example of layout before and after "exchange" in focusing search

250 Simulated Annealing – Single and Multiple Objective Problems

fixed, then the solution space will increase to (*n!*)*523n*.

modules for rotation or pairs of modules for exchange.

**Figure 8.** An example of layout before and after "rotation" in focusing search

**6. Moving methods for SA, 2-stage SA and MSA** 

when

It defines (*mi* N *mj*) when

It defines (*mi* T *mj*) when

In case of sequence quintuple, it consists of five sequences *Γ i,* where 1≤*i*≤5. Sequence quintuple generates a finite solution space which includes at least one optimal solution of 3D packing for volume optimization by decoding. sequence quintuple defines (*mi* W *mj*)

*F1*(*mi*) < *F1*(*mj*) and *F2*(*mi*) < *F2*(*mj*)

*F3*(*mi*) < *F3*(*mj*) and *F4*(*mi*) < *F4*(*mj*)

F5(mi) < F5(mj) where *mi* and *mj* is overlapping in the projected xy-plane after WE- and NS- decoding. For a given packing with *n* modules, the solution space is (*n!*)*5*. If the rotation of the module is not

According to section 5.2, we design the following moving methods. First of all, three basic moving methods, which are named by rotation, exchange and move, are used in the focusing search. Based on the basic methods, the group rotation and the group exchange are also used as two of moving methods in the rough search. They are repeatedly used the rotation and exchange operator with a given number. The groups are randomly selected

**Figure 10.** An example of layout before and after "move" in focusing search

The exchange moving method exchanges the order of two modules in *Γ<sup>i</sup>* , where *Γ<sup>i</sup>* corresponds to all sequences, i.e. the sequence pair (*Γ+, Γ-* ), the sequence triple (*Γ1, Γ2, Γ3*) or the sequence quintuple (*Γ1, Γ2, Γ3, Γ4*, *Γ5*). When an exchange is applied to module *mi* and *mj* with sequence triple representation, *F1*(*mi*) , *F2*(*mi*), *F3*(*mi*), *F1*(*mj*), *F2*(*mj*) and *F3*(*mj*) are changed to *F1*(*mj*) , *F2*(*mj*), *F3*(*mj*), *F1*(*mi*), *F2*(*mi*)and *F3*(*mi*), respectively. In the case of sequence pair, *F+*(*mi*), *F-*(*mi*), *F+*(*mj*), and *F-*(*mj*) are changed to *F+*(*mj*), *F-*(*mj*), *F+*(*mi*), and *F-*(*mi*), respectively. For example, if the modules *m3* and the module *m5* are operated by the exchange in Figure 9, then (*F+*(*m5*), *F-*(*m5*)) is changed from (4, 2) to (0, 3), and (*F+*(*m3*), *F-*(*m3*)) is changed from (0, 3) to (4, 2).

A Simulated Annealing Based Approach to Integrated Circuit Layout Design 253

To make it clearer, let us take an example to explain the crossover operator. As shown in Figure 11, the left layout is represented by *Γ+*(*m3,m4,m2,m1,m5*) and *Γ -*(*m5,m1,m2,m3,m4)* as the father, which is the capital "F" in Figure 12. The right one is *Γ+*(*m1,m3,m4,m2,m5*) and *Γ -* (*m3,m4,m1,m5,m2*) as the mother, which is the reversed capital "M" in Figure 12. If we assume the *i* be 1, the child will be the layout *Γ+*(*m3,m2,m4,m1,m5*) and *Γ -*(*m5,m2,m1,m3,m4*) as the right layout of Figure 12*,* where *Γ+*(*m*3*, ..., m5*) and *Γ -*(*m5, ..., m*4) are from the father as the margin of left picture of Figure 12, and *Γ+*(*...,m2,m4,m1,...*) and *Γ -*(*...,m2,m1,m3,...*) are from mother with an

**Figure 12.** The layout (child) after the crossover operator between the current layout (F: father) and the

To solve multi-objective problem, we are using the total cost function, which includes area of bounding rectangle for 2D case, volume of bounding box for 3D case, interconnect power and maximal delay. Especially, the interconnect power and the maximal delay are two typical conflicting objectives, which need to experiment carefully to satisfy the requirements

For the multi-objective optimization of 2D placement in this research, three different

*CC CC t p da* = ⋅ + ⋅ +⋅

where *α+β+γ=1*, and *Ct* is the total cost function, which includes the power function *Cp*, the delay function *Cd* and the area function *Ca*. And α, *β, γ* can be user-defined. As mentioned, *Cp* and *Cd* are normally conflicting in real implementation. That is to say, good *Cp* may lead to bad *Cd*, so we have to consider the trade-off between *Cp* and *Cd* using a lot of random

β

 γ (2)

α

inverse order as the centre of left picture of Figure 12.

best layout so far (M: mother) with an inverse order

objectives are defined by one formula as follow.

**8. Objectives and cost function** 

in real product design.

values of α and *β*.

The move changes the order of a module in *Γ<sup>i</sup>* . When a move is applied to module *mi* in *Γ<sup>i</sup>* , *Fi* (*mi*) is changed to another value, say *j*, and the orders of modules whose order is between *Fi* (*mi*) and *j* are shifted accordingly. For example, , if the operation is to move *m5* to *F-*(*m5*) *=* 0 in *Γ -*, the move will lead to *F-*(*m1*) *= F-*(*m1*) *+* 1 and *F-*(*m2*) *= F-*(*m2*) *+* 1, i.e.*Γ-* (*m1, m2, m5, m3, m4*) is changed to *Γ-* (*m5, m1, m2, m3, m4*) as shown in Figure 10.
