yang by xiaopangnv


									Title: Hierarchical Placement and Floor Planning in BEAR.

Felickao Yang


       The BEAR algorithm is implemented for rectangular blocks using a block layout

system. This algorithm uses a "meet in the middle" strategy. The dependency between

placement and routing are computed by a hierarchical routing method. The Bear

algorithm also considers resizing flexible blocks subject to the constraints on their

respective areas and aspect ratios. Due to the complexity of resizing flexible blocks, this

option will be ignored for the time being. Placement and floor planning become more

efficient as routing continues. The global routing aspect of BEAR is updated as routing

proceeds to provide a more uniform design flow.

       BEAR is a hierarchical building block layout system. Its objective is to arrange

blocks, after being routed, into the smallest rectangular shape constrained by height,

width, or aspect ratio. A motivation for using this layout is to reduce the connection

between blocks to increase the performance of a circuit. Another major motivation is to

assimilate placement, routing area location, and block resizing into one step unlike

independent placement and routing. This greatly reduces the number of iterations it takes

to generate a high quality layout solution.

       BEAR has a “meet in the middle” strategy it utilizes between placement and

routing. The “meet in the middle” strategy is composed of two parts. The bottom-up

aspect generates all possible combinations of block sizes and perturbs the optimal results

up to the root. The top-down physical placement generates a geometric cost function

with user input based on the data from the first cluster of leaf blocks. It forces the

geometric cost function down the tree levels to influence the shape and size of the

clustering blocks.

       Even though the BEAR layout system is ideal for flexible blocks, I will

implement the hierarchical building block floor plan with fixed, free-orientated blocks.

This implementation may produce unwanted solutions. However, it is much simpler to

comprehend and implement.

       The paper did not explicitly state how to arrange the leaf blocks to form a high

quality cluster. The simulated annealing algorithm will be used to form the combining

clusters. Note that in the input data, the weights were also included with the nets.

However, I have chosen to ignore the weight of the nets in deciding how to cluster

strongly connected blocks. Instead, these blocks will be determined as strongly

connected by choosing the nets sequentially.

       Tree Diagram:
Flow Chart of Algorithm/Program:

           Divide the blocks into 4 clusters, Group strongly
           connected blocks together.

           Run simulated annealing on the 4 clusters.

           Combine clusters 1 and 2, 3 and 4. Run simulated
           annealing for the combined clusters.

           Combine the last 2 optimal clusters into 1 cluster.
           Run simulated annealing to find optimal cluster.

           Output final results: Width, Height, Area
Program Structure:

       A simulated structure to that of the simulated annealing algorithm was also used

for the building block layout. Structures represented nets and cells to store its attributes.

Arrays were used to hold the initial, intermediate, and final polish expression.

       The most time and space consuming aspect of implementing the building block

layout was to run 4 polish expressions and 2 polish expressions simultaneously. The

memory space dedicated to the polish expressions quadrupled. Also, after the first cluster

is formed by the leaf cells, the combination of clusters can no longer swap operands and

operators if the polish expression is too small.

                              BEAR building block         Simulated Annealing

File Size                     41,176                      29,437

Time for input of 12 blocks   .2 - .22 seconds            1.5-1.6 seconds

Area for input of 12 blocks   960 units                   510 units

Time for input of 48 blocks   .257- .28 seconds           6.64 – 7.6 seconds

Area for input of 48 blocks   187,600 units               177,500 units

The BEAR building block algorithm had the advantage in speed. However, the results

were very disappointing.

       There are many aspects in this implementation that wasn’t touched upon, such as

the routing aspect. For the portions of the BEAR heuristic that was mentioned, there

could also be improvement. One such improvement is using flexible blocks. If flexible

blocks were implemented, the combining clusters would have much better results as it

progressed towards the root. Fixed, free-orientated blocks are no longer fully

controllable after the first cluster. Individual flexible blocks still maintain some degree of

being manipulated even after the first cluster. However, maintaining the constraints of

the aspect ratio is very complex.

       Using the net weights to determine the clustering of blocks would also help

improve routing solutions. Using only the area of the blocks to compare to simulated

annealing is misleading. The issue of routing area and connections is being overlooked.

So implementing a cost function to calculate the routing area would aid in routing.

       When implementing simulated annealing portion in the building block algorithm,

more time could have been spent on finding a better area. However, as blocks increase

the solutions improves significantly.

W. Dai, B. Eschermann, E.S. Kuh, and M. Pedram. Hierarchical placement

and floor planning in BEAR. IEEE Transactions on CAD, 8(12):1335-1349,

December 1989.

Hans Eisenmann and Frank M. Johannes. Generic Global Placement and Floorplanning.

35th Design Automation Conference. 1998.

To top