-
Notifications
You must be signed in to change notification settings - Fork 245
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
Remove budget based PNR #1149
Remove budget based PNR #1149
Conversation
@@ -51,7 +51,7 @@ wirelen_t get_net_metric(const Context *ctx, const NetInfo *net, MetricType type | |||
continue; | |||
if (timing_driven) { | |||
delay_t net_delay = ctx->predictArcDelay(net, load); | |||
auto slack = load.budget - net_delay; | |||
auto slack = -net_delay; |
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.
@gatecat This is one of the only places I had to remove budget
where I'm not sure I need to replace it with something else.
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.
Looks good - this is rarely if ever used code these days anyway (and quite possibly ripe for a cleanup - but don't worry about that as part of this work stream)
Friendly ping, have you had another chance to look at this? |
Yes! I will update after the weekend. |
It now prints out the critical path using only the new API. I have compared the outputs of a real world design on the ECP5. ~60% utilisation with 5 clocks and the reports match one to one. What is missing is that async paths aren't printed yet. I want to separate out the code that prints critical paths since it's quite large and makes it harder to understand what code is just for the analysis and what part is just for printing. If you are oke with this I want to move all of that to a |
Some other comments:
|
Good point will test this out. Do you have a "real world" design that uses this? Of course I can write smaller test cases myself but I want to ensure that it reports the exact same paths even if there are lot's of paths.
Right this is still WIP. Code style is also a mess still
Correct! I need to recover slack histogram and the full critical nets.
|
Hi, will this PR change the critical timing report that nextpnr is providing? (I am asking because i was working on a "beautify"-script for the report, so if the format will change it's pointless for me to continue my work.) |
The plan is for no user visible changes to the report format. |
Thank you for this really quick answer! |
c56ef56
to
e1700da
Compare
c44e68c
to
6fc4bd4
Compare
@gatecat I have left the timing changes for the next PR. I think this is mergable now. I have tested a real world ECP5 design with ~70% utilization and it works. |
6fc4bd4
to
2855194
Compare
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.
LGTM
TODO: