Skip to content

enable option to force molecule placement on a specified primitive site #2609

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

Merged
merged 2 commits into from
Jun 14, 2024

Conversation

KA7E
Copy link
Contributor

@KA7E KA7E commented Jun 12, 2024

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

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@KA7E KA7E requested a review from vaughnbetz June 12, 2024 19:37
@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool libarchfpga Library for handling FPGA Architecture descriptions lang-cpp C/C++ code labels Jun 12, 2024
@vaughnbetz
Copy link
Contributor

Looks good; will merge when CI is done.
Optional: we should eventually move the function level comments from cluster_placement.cpp to cluster_placement.h (better practice, matches newer code). Doesn't have to be done as part of this PR, but moving them all over would be good so if you want to do it now is a fine time.

@KA7E
Copy link
Contributor Author

KA7E commented Jun 13, 2024

I have other priorities this week, but I'll put it on my list. CI appears to have finished.

@KA7E
Copy link
Contributor Author

KA7E commented Jun 13, 2024

@vaughnbetz would you please merge this?

@vaughnbetz vaughnbetz merged commit c40ffe8 into master Jun 14, 2024
53 checks passed
@vaughnbetz vaughnbetz deleted the add_force_site_option branch June 14, 2024 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code libarchfpga Library for handling FPGA Architecture descriptions VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants