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

WIP: Reworking placer1 #171

Closed
wants to merge 26 commits into
base: master
from

Conversation

Projects
None yet
1 participant
@daveshah1
Copy link
Member

daveshah1 commented Dec 7, 2018

This makes several changes to placer1; bringing it closer to the algorithm described at http://www.eecg.toronto.edu/~vaughn/papers/fpga2000_arm.pdf and also working on some optimisations

In particular:

  • Timing weighting is now based on criticality rather than budget
  • "Normalised" costs are used for wirelength and timing
  • Bounding boxes are stored to optimise wirelength calculation (as suggested by @eddiehung )
  • Carry chains are now able to be moved after legalisation

The SA heuristic parameters are totally thrown off by these changes, they need fixing in order to see a QoR improvement. There may also be some performance improvements to investigate such as caching topological ordering for timing.

@daveshah1 daveshah1 force-pushed the daveshah1:crit_driven_placer branch 2 times, most recently from d52c40d to 5a4fef2 Dec 7, 2018

@daveshah1 daveshah1 force-pushed the daveshah1:crit_driven_placer branch from 6b9c197 to 0c04ed3 Dec 17, 2018

@daveshah1 daveshah1 force-pushed the daveshah1:crit_driven_placer branch from 0c04ed3 to 1ed92d9 Dec 24, 2018

daveshah1 added some commits Dec 7, 2018

placer1: New cost calculation infrastructure
Signed-off-by: David Shah <dave@ds0.me>
placer1: Bugfixes
Signed-off-by: David Shah <dave@ds0.me>
placer1: Fix cost delta calculation
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Tuning
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Make budget-based placement an option
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Tweaking temperature
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Allow chain position swaps after legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Tweaks
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Encourage chain swaps
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: New temperature heuristic
Signed-off-by: David Shah <dave@ds0.me>
placer1: Optimise for performance
Signed-off-by: David Shah <dave@ds0.me>
ecp5: Speed up timing analysis
Signed-off-by: David Shah <dave@ds0.me>
placer1: Consider regions during placement
Signed-off-by: David Shah <dave@ds0.me>
Add Python helper functions for floorplanning
Signed-off-by: David Shah <dave@ds0.me>
timing: Add --ignore-loops option
Signed-off-by: David Shah <dave@ds0.me>
pycontainers: Implement __contains__
Signed-off-by: David Shah <dave@ds0.me>
placer1: Improve handling of regions
Signed-off-by: David Shah <dave@ds0.me>
ice40: Add examples folder including floorplan example
Signed-off-by: David Shah <dave@ds0.me>
placer1: Implement non-timing-driven mode
Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Add (currently-unused) option for fanout threshold for timin…
…g cost calc

Signed-off-by: David Shah <davey1576@gmail.com>
placer1: Add place time print
Signed-off-by: David Shah <davey1576@gmail.com>
router1: Print route time
Signed-off-by: David Shah <davey1576@gmail.com>

@daveshah1 daveshah1 force-pushed the daveshah1:crit_driven_placer branch from 7329628 to 2789c4f Jan 8, 2019

daveshah1 added some commits Jan 8, 2019

placer1: Legalise after reaching a diameter, not temperature
Signed-off-by: David Shah <dave@ds0.me>
ecp5: Improve delay model
Signed-off-by: David Shah <dave@ds0.me>
ecp5: Implement budget overrides for carry chains and SLICE muxes
Signed-off-by: David Shah <dave@ds0.me>
@daveshah1

This comment has been minimized.

Copy link
Member Author

daveshah1 commented Feb 8, 2019

Going to close this PR. Further placer development, combining an analytic placer with these changes to placer1 for better QoR without the runtime cost, in #219. This also solves the ECP5 QoR issues that were in this PR.

@daveshah1 daveshah1 closed this Feb 8, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment