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 Vivado power optimization option flag #414

Closed
wants to merge 1 commit into from

Conversation

sebinho
Copy link
Contributor

@sebinho sebinho commented Jan 24, 2024

This proposal adds a flag to enable power optimization during implementation stage of a Vivado run.
Power optimization can have huge impacts, especially when using a device that has a PS (Processing System).

To use this new option, simply add the following flag in your *.core file:

flow_options :
            part           : xczu3eg-sfvc784-1-e
            power_opt      : 1

If set to 0, it will disable the power optimizations (and also if the options is not specified at all)

@sebinho
Copy link
Contributor Author

sebinho commented Jan 24, 2024

So on my setup, it works well when using the FLOW approach.
I am not sure why I get those checks failures. Maybe @olofk can help explaining why this fails?

Thanks

@olofk
Copy link
Owner

olofk commented Jan 25, 2024

Generally, we try to avoid adding explicit options when there are other ways to accomplish the same thing. The reason for that is there would otherwise be a million different flags which adds complexity. Instead, I propose doing the following:

Create a TCL file which contains set_property strategy Power_DefaultOpt [get_runs impl_1] and add that to a fileset with file_type : tclSource. Just tried that on a design and it seems to do the trick, but I don't have a good way to verify.

@sebinho
Copy link
Contributor Author

sebinho commented Jan 25, 2024

Thanks for the suggestion @olofk
I tried and it does indeed work as expected.

My only comment would be to say that the Vivado implementation step power_opt_design is quite common and one of the steps used very often. So I think it could be a good idea to somehow integrate this in the flow.
I know that Vivado has tons of flags that can be set, but this one seems like a big one.

Anyways, thanks a lot for your help.

@olofk
Copy link
Owner

olofk commented Jan 25, 2024

I understand your point, but one reflection I have made over the 12 years I have been working on this is that people are using these tools in such incredibly different ways. Things I thought everyone was doing turned out to of little use to others. We also used to have some assumptions built in that turned out to break code for others. That would not happen in this case, but it's the general reason why I am knowingly keeping things as lean as possible

@sebinho
Copy link
Contributor Author

sebinho commented Jan 26, 2024

I get your point. For sure there are many ways to look at it and different people will have different approaches and will use different parameters.
Thanks for being responsive, for the time being I will close the pull request to get this out of your hair.

@sebinho sebinho closed this Jan 26, 2024
@sebinho sebinho deleted the vivado branch March 14, 2024 09:46
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.

None yet

2 participants