enable option to force molecule placement on a specified primitive site #2609
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.
Added an optional primitive site parameter; if specified, vpr will either place the molecule on the specified site or fail; if not specified, vpr will select an available, legal site (if possible).
Description
Added optional force_site parameter to pack_mol_in_existing_cluster and start_new_cluster_for_mol; these functions pass the parameter to try_pack_mol, which passes it to get_next_primitive_list. If a force site is passed to get_next_primitive_list, it either places the molecule on this site or else returns failure.
Related Issue
Motivation and Context
This is required for reconstructing clusters from an externally generated flat placement.
How Has This Been Tested?
This has been tested by ingesting and reconstructing VPR-generated flat placement files.
This has no impact on QoR (in a previous PR I reported results for this and several other legalizer-related code changes compared to the master branch).
Types of changes
Checklist: