Title: Hierarchical Placement and Floor Planning in BEAR. Felickao Yang Abstract: 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. Introduction: 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. Method/Algorithm: 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. Results: 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. Discussion: 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. Reference: 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.
Pages to are hidden for
"yang"Please download to view full document