physdes-py

🧱 Physical Design Python Code

View project on GitHub

codecov Documentation Status

🧱 physdes-py

Physical Design Python Code

✨ Features

  • Rectilinear Polygon support

🚀 Recent Developments

  • Deferred Merge Embedding (DME) Algorithm: Implemented the DME algorithm for clock tree synthesis, featuring a strategy pattern for delay calculation. This allows for flexible delay modeling, with both LinearDelayCalculator and ElmoreDelayCalculator provided as options. The algorithm is designed to build a zero-skew clock tree and includes functionalities for analyzing clock skew, total wirelength, and other tree statistics.
  • Global Router Enhancements: The global router now offers multiple routing strategies to accommodate different design needs:
    • route_simple(): Connects terminals directly to the nearest node in the tree for quick and straightforward routing.
    • route_with_steiners(): Inserts Steiner points to optimize wire length, resulting in more efficient routing.
    • route_with_constraints(): A performance-driven approach that also uses Steiner points to reduce wire length.

Dependencies

👀 See also

👉 Note

This project has been set up using PyScaffold 3.2.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

Output Examples

Basic Clock Tree

Basic Clock Tree

Convex Hull

Convex Hull

Example Route Simple

Example Route Simple

Polygon Convex Hull

Polygon Convex Hull