π§± 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
LinearDelayCalculatorandElmoreDelayCalculatorprovided 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
- luk036/mywheel
- luk036/lds-gen (for testing only)
π 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/
π€ For AI Agents
If youβre an AI agent working on this repository, please see AGENTS.md for comprehensive guidelines on:
- Build/lint/test commands
- Code style and conventions
- Testing practices
- Development workflow
Output Examples
Clock Tree Synthesis Examples
Elmore Delay Model Clock Tree
Linear Delay Model Clock Tree
Delay Model Comparison
3D Elmore Model Clock Tree
3D Linear Model Clock Tree
Global Routing Examples
Routing with Steiner Points
Routing with Constraints
Routing with Keepouts
Routing with Steiner Points and Keepouts
3D Routing with Steiner Points
3D Routing with Constraints and Keepouts
Rectilinear Polygon Examples
Rectilinear Polygon Convex Hull
Rectilinear Polygon Convex Cut
X-Monotone Hull
Y-Monotone Hull
Steiner Forest
Steiner Forest