You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
♻️ Merge Placement and Routing into Layout Synthesis (#713)
## Description
This PR prepares the structure of the neutral atom compiler for upcoming
projects, where the placement and routing stage will be performed in one
step. This one step will be called *layout synthesis*. For the current
implementation that splits both steps into separate stages, it provides
a `PlaceAndRouteSynthesizer` that allows building a `LayoutSynthesizer`
from separate `Placement` and `Routing` steps.
## Checklist:
<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->
- [x] The pull request only contains commits that are focused and
relevant to this change.
- [x] I have added appropriate tests that cover the new/changed
functionality.
- [x] I have updated the documentation to reflect these changes.
- [x] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [x] I have added migration instructions to the upgrade guide (if
needed).
- [x] The changes follow the project's style guidelines and introduce no
new warnings.
- [x] The changes are fully tested and pass the CI checks.
- [x] I have reviewed my own code changes.
Copy file name to clipboardExpand all lines: UPGRADING.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,14 @@ All Python enums (e.g., `sc.Method`) are now exposed via `pybind11`'s new `py::n
14
14
As a result, the enums can no longer be initialized using a string.
15
15
Instead of `Method("exact")` or `"exact"`, use `Method.exact`.
16
16
17
+
This release restructures the neutral atom compiler which has consequences for its configuration and the reporting of statistics.
18
+
The placement and routing stages have been merged into a single layout synthesis stage.
19
+
There is a new `PlaceAndRouteSynthesizer` that combines the previously separate placement and routing stages.
20
+
Consequently, the configuration for the placement and routing stages must now be wrapped in a configuration for the layout synthesis stage when using the C++ API.
21
+
The Python API did not change in this regard.
22
+
Furthermore, when reporting the statistics of the neutral atom compiler, the statistics for placement and routing are now reported as part of the layout synthesis statistics.
23
+
The latter affects both the C++ and Python APIs.
24
+
17
25
## [3.2.0]
18
26
19
27
With this release, the Python package has been restructured.
0 commit comments