Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drt: elimination of getNoRotationTransform and drt::dbTransform #6326

Draft
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

bnmfw
Copy link
Contributor

@bnmfw bnmfw commented Dec 8, 2024

This PR has an ISPD and Secure CI associated and will be opened when they pass.
Fixes #5712.

Elimination of getNoRotationTransform

Previously on #6141 most use cases of getUpdatedXform were refactored to use the odb::dbTransform object. This allowed for the refactoring of getUpdatedXform into getNoRotationTransform which was the use case remaining. The refactored function was only using when recalculation the access points coordinates.

During revertAccessPoints chip coordinates are transformed to take the origin of their instance as the 0,0. However, the function was taking the incorrect frInst::dbTransform as a basis and not taking rotation into consideration. This mistake was compensated by getNoRotationTransform. Now revertAccessPoints takes the DB transformation as a basis, which allows the substitution of getNoRotationTransform to getDBTransform which is correct and inline with the db.

The remaining use of frInst::dbTranform was at frInstTerm::getAccessPoint where an inverse transformation was done manually. The adequate transformation was used instead.

After this modification frInst::dbTransform was never accessed, so it was eliminated from the class. This allowed the renaming of frInst::getDBTransform to frInst::getTransform since it now is the only transform frInst has access to. frInst::setOrient and frInst::setOrigin were deleted since at no part of the code the DRT actually has to change the odb::dbTransform anymore. This deletion required deleting the methods from the abstract base class frRef, which in part required the same methods on frVia to not be overrides anymore.

Finally at some parts of the code were previously both getUpdatedXform and getTransform were called, only the latter is necessary since their uses are the same, thus only one transformation is used and substitutes the deleted. Some variable name changes were done (Mainly shiftXform -> transform). The way the global router orients access points was also changed to conform with these changes.

@bnmfw bnmfw requested a review from osamahammad21 December 8, 2024 01:48
@bnmfw bnmfw added the drt Detailed Routing label Dec 8, 2024
@bnmfw bnmfw force-pushed the drt_frInstTranform_elimination branch from 07e8dc0 to cf85131 Compare December 8, 2024 01:50
@bnmfw bnmfw marked this pull request as draft December 8, 2024 01:51
Copy link
Contributor

github-actions bot commented Dec 8, 2024

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
Copy link
Contributor

github-actions bot commented Dec 8, 2024

clang-tidy review says "All clean, LGTM! 👍"

@bnmfw bnmfw force-pushed the drt_frInstTranform_elimination branch from cf85131 to 30011d6 Compare December 8, 2024 22:20
@bnmfw bnmfw changed the title drt: elimination of getNoRotationTransform drt: elimination of getNoRotationTransform and drt::dbTransform Dec 8, 2024
@bnmfw bnmfw force-pushed the drt_frInstTranform_elimination branch from 30011d6 to dd9966d Compare December 8, 2024 22:39
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

src/drt/src/db/obj/frInst.h Outdated Show resolved Hide resolved
src/drt/src/db/obj/frInst.h Outdated Show resolved Hide resolved
src/drt/src/db/obj/frVia.h Outdated Show resolved Hide resolved
src/drt/src/db/obj/frVia.h Outdated Show resolved Hide resolved
src/drt/src/db/obj/frRef.h Show resolved Hide resolved
src/drt/src/pa/FlexPA_prep.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

src/drt/src/db/obj/frRPin.cpp Outdated Show resolved Hide resolved
src/drt/src/db/obj/frRPin.cpp Outdated Show resolved Hide resolved
src/drt/src/ta/FlexTA_init.cpp Outdated Show resolved Hide resolved
src/drt/src/ta/FlexTA_init.cpp Outdated Show resolved Hide resolved
src/drt/src/ta/FlexTA_init.cpp Outdated Show resolved Hide resolved
src/drt/src/ta/FlexTA_init.cpp Outdated Show resolved Hide resolved
@bnmfw bnmfw force-pushed the drt_frInstTranform_elimination branch from ce82952 to e6e7761 Compare December 10, 2024 17:12
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
drt Detailed Routing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DRT: resolve conflicts between frInst::getTransform and frInst::getUpdatedXform
2 participants