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

P&R timing flow for Innovus/Tempus #858

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

rahulk29
Copy link
Member

@rahulk29 rahulk29 commented Apr 26, 2024

Fixes issues with the STA flow using Innovus and Tempus.

Related PRs / Issues

Type of change:

  • Bug fix
  • New feature
  • Other enhancement

Impact:

  • Change to core Hammer
  • Change to a Hammer plugin
  • Other

Contributor Checklist:

  • Did you set master as the base branch?
  • Did you state the type-of-change/impact?
  • Did you delete any extraneous prints/debugging code?
  • (If applicable) Did you add documentation for the feature?
  • (If applicable) Did you update the poetry.lock file if you updated the requirements in pyproject.toml?
  • (If applicable) Did you add a unit test demonstrating the PR?
  • (If applicable) Did you run this through the e2e integration tests?
  • (If applicable) Did you update the submodules in e2e/ if this feature depends on updated plugins?

@rahulk29 rahulk29 changed the title P&R timing flow for Innovus/Tempus [WIP] P&R timing flow for Innovus/Tempus Apr 26, 2024
@rahulk29 rahulk29 marked this pull request as draft April 26, 2024 01:10
@rahulk29 rahulk29 marked this pull request as ready for review April 26, 2024 03:28
@rahulk29 rahulk29 changed the title [WIP] P&R timing flow for Innovus/Tempus P&R timing flow for Innovus/Tempus Apr 26, 2024
@rahulk29 rahulk29 added the bug label Apr 26, 2024
# Assumes that the ILM was created by Innovus (or at least the file/folder structure).
# TODO: support non-Innovus hierarchical (read netlists, etc.)
verbose_append("read_ilm -cell {module} -directory {dir}".format(dir=ilm.dir, module=ilm.module))
verbose_append("set_ilm -cell {module} -in_dir {dir}".format(dir=ilm.dir, module=ilm.module))
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is it now set_ilm followed by read_ilm below? Just curious.

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't know why Cadence changed it, but in 23.1, read_ilm can only be called once; it reads all ILMs declared by set_ilm.

Copy link
Contributor

@harrisonliew harrisonliew Apr 26, 2024

Choose a reason for hiding this comment

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

Ok. Can you do a version check on this change then (i.e. keep the existing code for <23.1)

"timing.inputs.spefs": output_dict["par.outputs.spefs"],
"timing.inputs.sdf_file": output_dict["par.outputs.sdf_file"],
Copy link
Contributor

Choose a reason for hiding this comment

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

What about the case for post-P&R timing for non-hierarchical flows? Wouldn't you need to input an SDC file that's not the post_synth_sdc?

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

Successfully merging this pull request may close these issues.

2 participants