You are on page 1of 1

ACTICAL PROBLEMS IN VLSI PHYSICAL DESIGN AUTOMATION

Stockmeyer Algorithm
Given a slicing floorplan, Stockmeyer presented an optimal algorithm
[Stockmeyer, 1983] that determines the orientation of the blocks in the floor-
plan so that the overall floorplan area is minimized. This algorithm is often
used as a post-process of the given slicing floorplan to further optimize the
area objective. Stockmeyer also proved in his paper that the optimal orientation
problem for non-slicing floorplan is NP-complete.
Quick Overview
The algorithm starts with a tree that represents the given slicing floorplan.
The goal is to traverse the internal nodes in this so called “slicing tree” in
bottom-up fashion so that we compute the candidate dimensions of each inter-
nal node. When we obtain the dimension list of the top node in the tree, we
choose the one with the minimum area. We then traverse the tree in top-down
fashion to select the dimensions for the internal nodes as well as the orientation
of the leaf nodes, i.e., the blocks themselves, based on the decision made for
the parent node.
The core part of Stockmeyer algorithm is the computation of candidate
dimensions of the given node during the bottom-up traversal. Given a verti-
cal internal node for which we want to compute the dimension list, we begin
by merging the first dimensions of the left (w l , h l ) and the right child (w r ,
h r ).
In this case, the dimensions of the left and the right child are sorted so that
the width is increasing and the height is decreasing. The resulting dimension
after the merging is (w l + w r , max{h l , h r }). If h l > h r , we merge the
sec-
ond dimension of the left child and the first dimension of the right child. If
h l < h r , we merge the first dimension of the left child and the second di

You might also like