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

Add flag to restart place-and-route on failed target frequency #1373

Closed
wants to merge 1 commit into from

Conversation

jthornblad
Copy link
Contributor

  • Add --restart-on-failed-target-frequency flag and logic to restart the place-and-route process if the target frequency is not achieved.

  • This flag is intended to be used with the --randomize-seed option to generate a new random seed for every run. This can significantly improve the chances of achieving a higher clock frequency compared to using the default seed.

  • Move print_net_source out of log_crit_paths() to remove the 'static' keyword, which could otherwise cause a segmentation fault if the context is changed.

* Add --restart-on-failed-target-frequency flag and logic to restart the
  place-and-route process if the target frequency is not achieved.

* This flag is intended to be used with the --randomize-seed option to
  generate a new random seed for every run. This can significantly
  improve the chances of achieving a higher clock frequency compared to
  using the default seed.

* Move print_net_source out of log_crit_paths() to remove the 'static'
  keyword, which could otherwise cause a segmentation fault if the
  context is changed.
@rowanG077
Copy link
Contributor

rowanG077 commented Sep 26, 2024

Personally I think this should be out of scope for nextpnr. And instead should be handled with an external script.

One reason is that in most cases nextpnr is single threaded, the only parallelism by default is the analytical placer and only if you build with openmp support. So if you are on the edge of pass fail you will want to run nextpnr n times in parallel since it will be much faster to find a matching seed.

If you want I can send such a python script, but it was for fixed domain names. It shouldn't be to hard to adjust for arbitrary domains.

@gatecat
Copy link
Member

gatecat commented Sep 26, 2024

Yeah, I'm in agreement with @rowanG077

Anything in nextpnr itself should be finer-grained, like improving the ripup-and-reroute support in the router to locally improve the critical path.

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

Successfully merging this pull request may close these issues.

3 participants