@@ -444,22 +444,22 @@ Use the options below to override this default naming behaviour.
444444 Reads a file containing the locations of each atom on the FPGA.
445445 This is used by the packer to better cluster atoms together.
446446
447- The flat placement file (which often ends in `` .fplace ` `) is a text file
447+ The flat placement file (which often ends in :ref: ` .fplace < vpr_flat_place_file > `) is a text file
448448 where each line describes the location of an atom. Each line in the flat
449449 placement file should have the following syntax:
450450
451451 .. code-block :: none
452452
453- <atom_name : str> <x : float> <y : float> <layer : float> <atom_sub_tile : int> <atom_site_idx? : int>
453+ <atom_name : str> <x : float> <y : float> <layer : float> <atom_sub_tile : int>
454454
455455 For example:
456456
457457 .. code-block :: none
458458
459- n523 6 8 0 0 3
460- n522 6 8 0 0 5
461- n520 6 8 0 0 2
462- n518 6 8 0 0 16
459+ n523 6 8 0 0
460+ n522 6 8 0 0
461+ n520 6 8 0 0
462+ n518 6 8 0 0
463463
464464 The position of the atom on the FPGA is given by 3 floating point values
465465 (``x ``, ``y ``, ``layer ``). We allow for the positions of atom to be not
@@ -475,25 +475,29 @@ Use the options below to override this default naming behaviour.
475475 the sub-tile of an atom is unkown (allowing the packing algorithm to choose
476476 any sub-tile at the given (x, y, layer) location).
477477
478- The ``site_idx `` is an optional index into a linearized list of primitive
479- locations within a cluster-level block which may be used as a hint to
480- reconstruct clusters.
481-
482478 .. warning ::
483479
484480 This interface is currently experimental and under active development.
485481
486482.. option :: --write_flat_place <file >
487483
488- Writes the post-placement locations of each atom into a flat placement file.
484+ Writes the post-placement locations of each atom into a flat placement file
485+ (see :ref: `flat placement file format <vpr_flat_place_file >`).
486+
487+ For each atom in the netlist, the following information is stored into the
488+ flat placement file:
489+
490+ * The x, y, and sub_tile location of the cluster that contains this atom.
491+
492+ .. option :: --write_legalized_flat_place <file >
493+
494+ Writes the post-legalization locations of each atom into a flat placement file
495+ (see :ref: `flat placement file format <vpr_flat_place_file >`).
489496
490497 For each atom in the netlist, the following information is stored into the
491498 flat placement file:
492499
493500 * The x, y, and sub_tile location of the cluster that contains this atom.
494- * The flat site index of this atom in its cluster. The flat site index is a
495- linearized ID of primitive locations in a cluster. This may be used as a
496- hint to reconstruct clusters.
497501
498502.. _netlist_options :
499503
@@ -1285,14 +1289,20 @@ Analytical Placement is generally split into three stages:
12851289
12861290 **Default: ** ``bipartitioning ``
12871291
1288- .. option :: --ap_full_legalizer {naive | appack}
1292+ .. option :: --ap_full_legalizer {naive | appack | flat-recon }
12891293
12901294 Controls which Full Legalizer to use in the AP Flow.
12911295
12921296 * ``naive `` Use a Naive Full Legalizer which will try to create clusters exactly where their atoms are placed.
12931297
12941298 * ``appack `` Use APPack, which takes the Packer in VPR and uses the flat atom placement to create better clusters.
12951299
1300+ * ``flat-recon `` Use the Flat Placement Reconstruction Full Legalizer which tries to reconstruct a clustered placement that is
1301+ as close to the incoming flat placement as possible. It can be used to read a flat placement from a :ref: `.fplace <vpr_flat_place_file >` file
1302+ or on the (in memory) output of VTR's integrated Global Placement algorithm. In both cases, it expects the given solution to be close to legal.
1303+ If used with a :ref: `.fplace <vpr_flat_place_file >` file, each atom in a molecule should have compatible location information. It is legal to
1304+ leave some molecules unconstrained; the reconstruction phase will choose where to place them but does not attempt to optimize these locations.
1305+
12961306 **Default: ** ``appack ``
12971307
12981308.. option :: --ap_detailed_placer {none | annealer}
0 commit comments