A method for performing
timing closure on VLSI chips in a distributed environment is described. Abstracting the physical and timing resources of a
chip and providing an asynchronous method of updating that abstraction allows multiple partitions of a
chip to be optimized concurrently. A global view of physical and timing resources is supplied to local optimizations which are applied concurrently to achieve
timing closure. Portions of the hierarchy are optimized in separate processes. Partitioning of the
chip is performed along hierarchical lines, with each process owning a single partition in the hierarchy. The processes may be executed by a single computer, or spread across multiple computers in a local network. While optimizations performed by a
single process are only applied to its given portion of the hierarchy, decisions are made in the context of the entire hierarchy. These optimizations include placement, synthesis, and routing. The
present method can also be expanded to include other resources, such as routing resource, power
supply current, power / thermal budget, substrate
noise budget, and the like, all of which being able to be similarly abstracted and shared.