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

Updated Restructured PAR ICC Plugin #17

Merged
merged 8 commits into from
Jun 30, 2021

Conversation

harikumar27399
Copy link
Collaborator

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.

Copy link
Contributor

@harrisonliew harrisonliew left a 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.

par/icc/__init__.py Show resolved Hide resolved

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"),
Copy link
Contributor

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:])
Copy link
Contributor

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.

par/icc/__init__.py Show resolved Hide resolved
par/icc/__init__.py Outdated Show resolved Hide resolved
par/icc/__init__.py Outdated Show resolved Hide resolved
par/icc/__init__.py Outdated Show resolved Hide resolved
par/icc/__init__.py Outdated Show resolved Hide resolved
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. """
Copy link
Contributor

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.

par/icc/defaults.yml Show resolved Hide resolved
@harikumar27399
Copy link
Collaborator Author

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.

@harrisonliew
Copy link
Contributor

No problem. I see that you have made updates corresponding to the resolved conversations!

@harikumar27399
Copy link
Collaborator Author

Yes. I won't be making any other changes beyond this. So, you can merge the pull request whenever you want.

@harikumar27399
Copy link
Collaborator Author

I have also opened an issue in the core Hammer repo that needs to be looked into.

@harrisonliew harrisonliew merged commit e935516 into ucb-bar:master Jun 30, 2021
@harrisonliew harrisonliew deleted the par-icc-plugin branch June 30, 2021 17:32
harrisonliew added a commit to ucb-bar/hammer that referenced this pull request Jun 30, 2021
edwardcwang pushed a commit to ucb-bar/hammer that referenced this pull request Jun 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants