-
Notifications
You must be signed in to change notification settings - Fork 403
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
[Clustering] Independent Clustering Verification #2771
[Clustering] Independent Clustering Verification #2771
Conversation
@vaughnbetz This is a complementary PR to the Independent Placement Verification PR I raised yesterday (PR #2769 ). I could not find anywhere in the clustering flow that checked these invariants directly so this should improve test coverage. This checks the clustering to ensure that every atom is in a cluster, every cluster has correct floorplanning constraints, and the cluster pbs are correct (for the most part). Please review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good; merge when you see fit.
clb_atoms, | ||
cluster_constraints, | ||
constraints); | ||
// TODO: There exists more checks for the clustering in base/check_netlist.cpp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think general netlist features like mapping consistency are good to put in the netlist verify routine if possible. But I guess given that the atom_lookup clb mapping is not in the netlist or tied to it, it's OK to have the checks here instead. Just suggesting you think about whether we should have a lookup verifier that can be called by this routine for checks that make sense ...
Created a method that would independently verify the clustering in the VPR flow. If a clustering passes this verification, it is assumed that it can be used in placement and routing without issue. By design, this method does not use any global variables (everything needs to be passed in) and it recomputes everything that it does not assume. This allows it to be independent of the packing flow, so this method can also be used in the AP flow.
The verification and printing of the clustered netlsit made more sense inside of the load_packing method. Moved.
693becf
to
88f581d
Compare
5d373d8
to
58ea2c0
Compare
Created a method that would independently verify the clustering in the VPR flow. If a clustering passes this verification, it is assumed that it can be used in placement and routing without issue.
By design, this method does not use any global variables (everything needs to be passed in) and it recomputes everything that it does not assume. This allows it to be independent of the packing flow, so this method can also be used in the AP flow.