-
Notifications
You must be signed in to change notification settings - Fork 1
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
Updated Restructured PAR ICC Plugin #17
Conversation
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.
Thank you so much again for making these wonderful updates!
I will approve for now but leave unmerged for a few days, in case you feel like addressing any comments before the end of your tenure at your lab.
|
||
with open(floorplan_tcl, "a") as f: | ||
f.write("\nconnect_net {o}{power_net}{c} {o}{power_port}{c}".format( | ||
o='{', power_net=self.get_setting("par.icc.MW_POWER_NET"), |
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.
Instead of having these ICC-specific keys, should this instead use the vlsi.inputs.supplies
keys (i.e. the Supply
struct in Hammer)?
|
||
for constraint in floorplan_constraints: | ||
|
||
new_path = "/".join(constraint.path.split("/")[1:]) |
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.
Just wondering, is this because for ICC paths should not contain the top module's name in front? Perhaps this could be checked and done conditionally, in case users already know this about ICC.
layers="all" if constraint.layers is None else " ".join(get_or_else(constraint.layers, [])) )) | ||
def pg_connection(self) -> List[str]: | ||
""" Connects the P/G pins to the P/G nets. Synopsys ICC requires this to be executed everytime a new element is added to the layout, | ||
preferably after every step of the PAR flow. """ |
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.
Ohhh I see why you have these net keys now. Have you looked into generating/using UPFs? I am not sure what ICC's support is, but the power intent and global connections should generally be handled once in there.
Harrison, I apologize for the large no. of commits. I was facing issues with merge conflicts and accessing the private repo using Github password throws an error now. Kindly ignore all the commits except the latest one. Thanks. |
No problem. I see that you have made updates corresponding to the resolved conversations! |
Yes. I won't be making any other changes beyond this. So, you can merge the pull request whenever you want. |
I have also opened an issue in the core Hammer repo that needs to be looked into. |
Closes #608 and required for ucb-bar/hammer-synopsys-plugins#17
Closes #608 and required for ucb-bar/hammer-synopsys-plugins#17
The old plugin has been completely restructured to remove the dependency on the ICC RM scripts. The PAR flow has also been broken down into many steps similar to the Innovus plugin to give more control over the flow.