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

Major re-organization of Vivado U2*0 *.tcl Support for 4 DRAM channels on U250 #1669

Merged
merged 16 commits into from
Nov 16, 2023

Conversation

abejgonzalez
Copy link
Contributor

@abejgonzalez abejgonzalez commented Nov 13, 2023

Major re-organization to remove a ton of duplication in the U2*0 Vivado flow as well as a bunch of other QoL feature updates.

  • Implementation scripts have been deduped and streamlined. Difference between 2021* and 2022/3 is that if timing is not met on the initial implementation run, then a ML-assisted implementation mode is run (same code as before). The initial implementation run shares the same code between versions.
  • We now use the same strategy_{TIMING/...}.tcl scripts as aws-fpga. This build strategy flag in build recipes is now supported for all Alveo FPGAs.
  • Adds support for 4 DRAM channels to the U250 flow only. In this setup, DRAM memory controllers are always synthesized resulting in 4x(~1%) ~= ~5% (est) of area lost to the controllers. Real numbers: ~8% of FPGA taken for XDMA DRAM controllers (aka all non-FireSim stuff) compared to ~5% before.
  • It is now significantly easier to support more Vivado versions. U250 now supports Vivado 2023.1. Other FPGA's haven't been modified to support other versions.
  • BD for U250 is now just used to generate all Vivado IP. It does not include the firesim_wrapper. Now there is a new overall top-level with the BD as a submodule with firesim_wrapper as another submodule.
  • Fixes U2*0 and VCU118 XDC paths by fixing the platform config and corresponding static XDC files in the platforms areas.

This PR looks big but really isn't (a lot of files are deleted for the de-dup or moved around).

Related PRs / Issues

UI / API Impact

Same XDMA interface. Only difference is the DRAM channels.

Verilog / AGFI Compatibility

Contributor Checklist

  • Is this PR's title suitable for inclusion in the changelog and have you added a changelog:<topic> label?
  • Did you add Scaladoc/docstring/doxygen to every public function/method?
  • Did you add at least one test demonstrating the PR?
  • Did you delete any extraneous prints/debugging code?
  • Did you state the UI / API impact?
  • Did you specify the Verilog / AGFI compatibility impact?
  • If applicable, did you regenerate and publicly share default AGFIs?
  • If applicable, did you apply the ci:fpga-deploy label?
  • If applicable, did you apply the Please Backport label?

Reviewer Checklist (only modified by reviewer)

Note: to run CI on PRs from forks, comment @Mergifyio copy main and manage the change from the new PR.

  • Is the title suitable for inclusion in the changelog and does the PR have a changelog:<topic> label?
  • Did you mark the proper release milestone?
  • Did you check whether all relevant Contributor checkboxes have been checked?

@abejgonzalez abejgonzalez added the changelog:added Put PR title in 'Added' section of changelog label Nov 13, 2023
@abejgonzalez abejgonzalez self-assigned this Nov 13, 2023
@abejgonzalez abejgonzalez changed the title Multi dram u250 Support multiple DRAM channels in U250 Nov 13, 2023
@abejgonzalez abejgonzalez changed the title Support multiple DRAM channels in U250 Major re-organization of Vivado U250 *.tcl Support for 4 DRAM channels Nov 15, 2023
@abejgonzalez abejgonzalez changed the title Major re-organization of Vivado U250 *.tcl Support for 4 DRAM channels Major re-organization of Vivado U2** *.tcl Support for 4 DRAM channels Nov 15, 2023
@abejgonzalez abejgonzalez changed the title Major re-organization of Vivado U2** *.tcl Support for 4 DRAM channels Major re-organization of Vivado U2*0 *.tcl Support for 4 DRAM channels Nov 15, 2023
@abejgonzalez abejgonzalez mentioned this pull request Nov 15, 2023
12 tasks
@abejgonzalez abejgonzalez changed the title Major re-organization of Vivado U2*0 *.tcl Support for 4 DRAM channels Major re-organization of Vivado U2*0 *.tcl Support for 4 DRAM channels on U250 Nov 15, 2023
@abejgonzalez
Copy link
Contributor Author

Needs a review on firesim/garnet-firesim#2

@abejgonzalez
Copy link
Contributor Author

abejgonzalez commented Nov 15, 2023

U250 verified to work with a RocketConfig w/ 32G of DRAM allocated. All other FPGAs (U200/280/VCU118) are confirmed to build properly - since no BD or major platform changes were made to these FPGAs they don't need to be verified booting Linux.

Copy link
Contributor

@joonho3020 joonho3020 left a comment

Choose a reason for hiding this comment

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

looks fine w/ cursory review

@abejgonzalez abejgonzalez merged commit 7fc48b2 into main Nov 16, 2023
1 check passed
@abejgonzalez abejgonzalez deleted the multi-dram-u250 branch November 16, 2023 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog:added Put PR title in 'Added' section of changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants