You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//TODO: to be consistent with placement/routing vpr_pack should really
// load the netlist data structures itself, instead of re-loading
// the netlist from the .net file
//Load the result from the .net file
vpr_load_packing(vpr_setup, arch);
This is very inefficient since a lot of the information from the clustering state is being regenerated again, which wastes a lot of time. It also means that a .net file MUST be made to run VPR, even though it is not necessary.
Instead, the ClusterLegalizer could have a method to convert all of its LegalizationClusters into a valid ClusteredNetlist. The write_packing_results_to_xml method could then be used to write the ClusteredNetlist directly to a file (instead of generating it from the LegalizationClusters), if the .net file is needed.
// Since the cluster legalizer is not being used to output the clustering
// (from_legalizer is false), passing in nullptr.
output_clustering(nullptr,
global_clocks,
is_clock,
architecture_id,
out_fname,
false, /*skip_clustering*/
false/*from_legalizer*/);
}
This should be a straightforward change, but the biggest thing is making sure that the ClusteredNetlist generated from the ClusterLegalizer EXACTLY matches the ClusteredNetlist generated from reading a .net file. A unit test should be added which compares these two ClusteredNetlists and ensures they exactly match.
The text was updated successfully, but these errors were encountered:
The current behaviour of the Packer is as follows:
vtr-verilog-to-routing/vpr/src/pack/pack.cpp
Lines 271 to 273 in e38c0f3
vtr-verilog-to-routing/vpr/src/base/vpr_api.cpp
Lines 594 to 599 in e38c0f3
This is very inefficient since a lot of the information from the clustering state is being regenerated again, which wastes a lot of time. It also means that a .net file MUST be made to run VPR, even though it is not necessary.
Instead, the ClusterLegalizer could have a method to convert all of its LegalizationClusters into a valid ClusteredNetlist. The
write_packing_results_to_xml
method could then be used to write the ClusteredNetlist directly to a file (instead of generating it from the LegalizationClusters), if the .net file is needed.vtr-verilog-to-routing/vpr/src/pack/output_clustering.cpp
Lines 720 to 743 in e38c0f3
This should be a straightforward change, but the biggest thing is making sure that the ClusteredNetlist generated from the ClusterLegalizer EXACTLY matches the ClusteredNetlist generated from reading a .net file. A unit test should be added which compares these two ClusteredNetlists and ensures they exactly match.
The text was updated successfully, but these errors were encountered: