Manager support for custom TARGET_PROJECT #1495
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the manager to support arbitrary
TARGET_PROJECT
s instead of onlyfiresim
. In effect, all mentions oftriplet
s (consisting of(DESIGN, TARGET_CONFIG, PLATFORM_CONFIG)
) becomequadruplet
s (consisting of(TARGET_PROJECT, DESIGN, TARGET_CONFIG, PLATFORM_CONFIG)
).This adds support for all manager features except producing the command to run a simulation (this needs some more thinking). But building bitstreams/metasims and doing everything up to and including infrasetup (and then running the sim by hand on the run farm instance) works as expected.
This should be fully backwards compatible with existing AGFIs and config yaml files (see below).
This also adds a fix so that the manager doesn't complain about
deploy_quadruplet_override
(formerlydeploy_triplet_override
) being set for vitis bitstreams. FYI: @abejgonzalezInternally, you will notice that some mentions of "triplet" remain. These are because the make-system still relies on triplets for naming several things (e.g. directories in
sim/generated-src/f1/
). Updating this is punted to a future PR since this is only really a problem if you work with multiple differentquadruplet
s that have the sametriplet
, which is rare. This has no effect on functionality besides this case.Related PRs / Issues
N/A
UI / API Impact
config_hwdb.yaml
now have adeploy_quadruplet_override
key instead ofdeploy_triplet_override
.config_build_recipes.yaml
now have adeploy_quadruplet
key instead ofdeploy_triplet
.For both, backwards compatibility is ensured like so:
deploy_triplet_override
ordeploy_triplet
are defined, instructing the user to upgrade, but will otherwise work as usual.deploy_triplet_override
anddeploy_quadruplet_override
are defined or bothdeploy_triplet
anddeploy_quadruplet
are defined.TARGET_PROJECT=firesim
for any triplet. Otherwise, quadruplets are expected and all defaults in config files and docs have been updated to quadruplets.The serialized versions of triplets stored in AGFI descriptions (
firesim-buildtriplet
andfiresim-deploytriplet
) continue to be kept so that old managers can continue to use AGFIs generated with the version of the manager in this PR. For AGFIs tagged only with a triplet, the manager assumesTARGET_PROJECT=firesim
. This version of the manager also addsfiresim-buildquadruplet
andfiresim-deployquadruplet
key/values on AGFIs for the newTARGET_PROJECT
support. Old managers will ignore these keys silently.I have tested:
Verilog / AGFI Compatibility
See note above. No user facing changes. No need for AGFI re-gen.
Contributor Checklist
changelog:<topic>
label?ci:fpga-deploy
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.changelog:<topic>
label?