-
Notifications
You must be signed in to change notification settings - Fork 562
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
rsz: extract detailed routing parasitics inside estimate_parasitics code #6068
base: master
Are you sure you want to change the base?
rsz: extract detailed routing parasitics inside estimate_parasitics code #6068
Conversation
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
2 similar comments
clang-tidy review says "All clean, LGTM! 👍" |
clang-tidy review says "All clean, LGTM! 👍" |
…ed routing Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
src/rsz/README.md
Outdated
[-spef_file spef_file] | ||
[-ext_model_file] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[-ext_model_file] | |
[-ext_model_file model_file] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how does this handle corners? they have separate model files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my tests, I'm using only the public PDKs available in ORFS, which use only on model file and one corner for parasitics extraction.
How are you using multiple corners in your flow? Do you loop over each corner to extract the parasitics for them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we loop over them to generate a different spef file per corner and read them in per corner to be able to get timing across corners (it's clumsy, but it's the interface we have in OpenROAD at the moment). I think corner support is needed for this to be a complete/correct solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If rcx was augmented to allow us to set the model files per corner that would also allow us to avoid adding this argument and just ask rcx to generate the parasitics
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this option can be updated to take multiple files, and them the implementation will perform parasitics extraction for each of them. I believe sta have the support to have the parasitics stored for multiple corners, so when running repair_timing it would look at all of them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eder-matheus it seems to me like modifying RCX to store the model files would require a much less complex argument to this command. and yes, STA fully supports corners.
Co-authored-by: Matt Liberty <[email protected]> Signed-off-by: Eder Monteiro <[email protected]>
Co-authored-by: Matt Liberty <[email protected]> Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
2 similar comments
clang-tidy review says "All clean, LGTM! 👍" |
clang-tidy review says "All clean, LGTM! 👍" |
@gadfort do you have a snippet of code that shows how you set it up today for rcx & sta? |
@maliberty https://github.com/siliconcompiler/siliconcompiler/blob/adb451bc72eb0f9b8a863ddf192a164b7f0b0e25/siliconcompiler/tools/openroad/scripts/sc_export.tcl#L40-L69 |
I should note that it looks like rcx could "handle" corners if they are in the RCX file, but the current conversion flows we have don't support creating a single file with multiple corners (no clue what that would look like anyways), most PDKs separate the corners for PEX |
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
Signed-off-by: Eder Monteiro <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
The current implementation of RCX doesn't allow reading multiple model files at once. Since we have a big update ongoing on RCX, I think we should not implement new features in this tool until they are merged. Regarding my implementation here, I believe we could merge what we have now but keep track of the required updates in RCX regarding multiple model files. I will add comments in my code to track what parts needs to be updated once RCX has full support for multiple model files. |
Part one to fix #6064.