Merge pull request 'Removing mxpic_forge from dependency' (#2) from main into pengkun_main #3
+46
-4
@@ -40,10 +40,6 @@ The routing method selection logic was updated so perpendicular port-angle cases
|
|||||||
mxpic_router/mxpic_router/builder.py
|
mxpic_router/mxpic_router/builder.py
|
||||||
mxpic_router/tests/test_eda_router_contract.py
|
mxpic_router/tests/test_eda_router_contract.py
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 2026-06-04
|
## 2026-06-04
|
||||||
|
|
||||||
### Scope
|
### Scope
|
||||||
@@ -93,3 +89,49 @@ Contract tests were added and updated to cover automatic S-bend `Lstart` assignm
|
|||||||
mxpic_router/mxpic_router/builder.py
|
mxpic_router/mxpic_router/builder.py
|
||||||
mxpic_router/tests/test_eda_router_contract.py
|
mxpic_router/tests/test_eda_router_contract.py
|
||||||
|
|
||||||
|
|
||||||
|
## 2026-06-05
|
||||||
|
|
||||||
|
### Scope
|
||||||
|
|
||||||
|
Backend S-bend grouping contract and `Lstart` ordering refinement in `mxpic_router`.
|
||||||
|
|
||||||
|
### Summary
|
||||||
|
|
||||||
|
Recent work focused on improving automatic S-bend spacing behavior for multi-port routing cases, especially MMI-to-port and resistor-array routing patterns.
|
||||||
|
|
||||||
|
### Completed Work
|
||||||
|
|
||||||
|
#### 1. Explicit Route Group Metadata Support
|
||||||
|
|
||||||
|
Backend support was added for explicit link grouping metadata from the layout YAML.
|
||||||
|
|
||||||
|
`LinkSpec` now records the parent bundle name and accepts optional route grouping fields such as `route_group`, `routeGroup`, `group`, `bundle_group`, and `bundleGroup`.
|
||||||
|
|
||||||
|
This prepares the backend for future frontend-provided bundle/group selection while preserving the existing geometry-based fallback behavior.
|
||||||
|
|
||||||
|
#### 2. S-Bend Stage Grouping Refinement
|
||||||
|
|
||||||
|
The S-bend grouping key was refined to avoid mixing routes from different routing stages within the same YAML bundle.
|
||||||
|
|
||||||
|
Automatic S-bend routes are now grouped by routing axis, direction, route stage/span, xsection, width, and radius unless an explicit route group is provided.
|
||||||
|
|
||||||
|
This prevents separate stages such as component-to-component routes and component-to-port routes from interfering with each other's `Lstart` ordering.
|
||||||
|
|
||||||
|
#### 3. Lstart Ordering Correction
|
||||||
|
|
||||||
|
The `Lstart` ordering logic was reviewed for resistor-array and MMI-to-port routing cases.
|
||||||
|
|
||||||
|
The sorting basis was corrected to use the source-side route coordinate for same-direction fan-out/fan-in routes, and S-bend axis detection was updated to prefer port direction over raw geometric span.
|
||||||
|
|
||||||
|
This fixes cases where routes with large vertical offset were incorrectly classified and assigned reversed `Lstart` values.
|
||||||
|
|
||||||
|
#### 4. Test Coverage Update
|
||||||
|
|
||||||
|
Contract tests were added and updated to cover explicit route group metadata parsing, route-stage separation, MMI-to-port two-output fan-out ordering, width-aware `Lstart` spacing, and preservation of earlier S-bend spacing behavior.
|
||||||
|
|
||||||
|
### Modified Files
|
||||||
|
|
||||||
|
mxpic_router/mxpic_router/eda_loader.py
|
||||||
|
mxpic_router/mxpic_router/builder.py
|
||||||
|
mxpic_router/tests/test_eda_router_contract.py
|
||||||
|
|||||||
Reference in New Issue
Block a user