Skip to content

Commit 44bb51c

Browse files
committed
Merge branch 'doc_typos' of https://github.com/verilog-to-routing/vtr-verilog-to-routing into doc_typos
2 parents 5013196 + 6a8b162 commit 44bb51c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+13877
-237
lines changed

.github/workflows/nightly_test_manual.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
./dev/upgrade_vtr_archs.sh
5252
make get_symbiflow_benchmarks
5353
make get_zeroasic_rr_graphs
54+
make get_flat_placements
5455
5556
# Build VTR using the default build options.
5657
- name: 'Build VTR'

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,14 @@ add_custom_target(get_zeroasic_rr_graphs
368368
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
369369
COMMENT "Downloading (~2MB) and extracting Zero ASIC RR graphs (~0.1GB) into VTR source tree.")
370370

371+
#
372+
# Flat Placement Files
373+
#
374+
add_custom_target(get_flat_placements
375+
COMMAND ./vtr_flow/scripts/get_flat_placement_files.py --vtr_flow_dir ./vtr_flow
376+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
377+
COMMENT "Downloading (~5MB) and extracting Flat Placement Files (~0.1GB) into VTR source tree.")
378+
371379
#
372380
# Unit Testing
373381
#

doc/src/Images/Block_Settings.png

-274 KB
Loading

doc/src/Images/Net_Settings.png

-22.3 KB
Loading

doc/src/Images/Routing_Options.png

-30.5 KB
Loading

doc/src/Images/crit_path.png

-282 KB
Loading

doc/src/Images/manual_move.png

-92.1 KB
Loading

doc/src/Images/view_menu.png

-76.2 KB
Loading

doc/src/vpr/command_line_usage.rst

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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}

doc/src/vpr/file_formats.rst

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,42 @@ Placement File Format Example
696696
xor5 1 2 0 0 #6
697697
[1] 1 1 0 1 #7
698698
699+
.. _vpr_flat_place_file:
700+
701+
Flat Placement File Format (.fplace)
702+
------------------------------------
703+
The flat placement file is a text file where each line describes the location of
704+
an atom. Each line in the flat placement file should have the following syntax:
705+
706+
.. code-block:: none
707+
708+
<atom_name : str> <x : float> <y : float> <layer : float> <atom_sub_tile : int>
709+
710+
For example:
711+
712+
.. code-block:: none
713+
714+
n523 6 8 0 0
715+
n522 6 8 0 0
716+
n520 6 9 0 0
717+
n518 6 9 0 0
718+
719+
The position of the atom on the FPGA is given by 3 floating point values
720+
(``x``, ``y``, ``layer``). We allow x and y locations to be off-grid since
721+
this flat placement will be fed into the packer and placer, which will snap
722+
the positions to grid locations. For 2D FPGA architectures, the ``layer`` should be 0.
723+
724+
The ``sub_tile`` is a clustered placement construct: which cluster-level
725+
location at a given (x, y, layer) should these atoms go at (relevant when
726+
multiple clusters can be stacked there). A sub-tile of -1 may be used when
727+
the sub-tile of an atom is unkown (allowing the packing algorithm to choose
728+
any sub-tile at the given (x, y, layer) location).
729+
730+
When used with ``flat-recon`` full legalizer (see :option:`vpr --ap_full_legalizer`),
731+
each atom in a molecule should have compatible location information. It is legal to
732+
leave some molecules unconstrained; the reconstruction phase will choose where
733+
to place them but does not attempt to optimize these locations.
734+
699735
.. _vpr_route_file:
700736

701737
Routing File Format (.route)

0 commit comments

Comments
 (0)