Skip to content

Commit 7219c18

Browse files
[AP] Added Documentation for AP Flow
1 parent a9c9d66 commit 7219c18

File tree

5 files changed

+24
-3
lines changed

5 files changed

+24
-3
lines changed

doc/src/arch/reference.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ The valid tags within the ``<layout>`` tag are:
158158

159159
.. note:: At most one ``<auto_layout>`` can be specified.
160160

161+
.. _fixed_arch_grid_layout:
162+
161163
.. arch:tag:: <fixed_layout name="string" width="int" height="int">
162164
163165
:req_param name:

doc/src/vpr/command_line_usage.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,23 @@ VPR runs all stages of (pack, place, route, and analysis) if none of :option:`--
8282

8383
**Default:** ``off``
8484

85+
.. option:: --analytical_place
86+
87+
Run the analytical placement flow.
88+
This flows uses an integrated packing and placement algorithm which uses information from the primitive level to improve clustering and placement;
89+
as such, the :option:`--pack` and :option:`--place` options should not be set when this option is set.
90+
This flow requires that the device has a fixed size and some of the primitive blocks are fixed somewhere on the device grid.
91+
92+
.. seealso:: See :ref:`Fixed FPGA Grid Layout <fixed_arch_grid_layout>` and :option:`--device` for how to fix the device size.
93+
94+
.. seealso:: See :ref:`VPR Placement Constraints <placement_constraints>` for how to fix primitive blocks in a design to the device grid.
95+
96+
.. warning::
97+
98+
This analytical placement flow is experimental and under active development.
99+
100+
**Default:** ``off``
101+
85102
.. option:: --route
86103

87104
Run routing stage

vpr/src/base/CheckSetup.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ void CheckSetup(const t_packer_opts& PackerOpts,
9191
// some fixed blocks somewhere. Maybe we can live without fixed
9292
// blocks.
9393

94-
// FIXME: Should we enforce that the size of the device is fixed? Or is
95-
// that defined in the constraints file?
94+
// TODO: Should we enforce that the size of the device is fixed. This
95+
// goes with ensuring that some blocks are fixed.
9696
}
9797

9898
if (RouterOpts.doRouting) {

vpr/src/base/SetupVPR.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,8 @@ void SetupVPR(const t_options* Options,
280280
}
281281

282282
if (Options->do_analytical_placement) {
283+
// In the Analytical Placement flow, packing and placement are
284+
// integrated. Thus, these stages are skipped.
283285
PackerOpts->doPacking = STAGE_SKIP;
284286
PlacerOpts->doPlacement = STAGE_SKIP;
285287
APOpts->doAP = STAGE_DO;

vpr/src/base/read_options.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,7 @@ argparse::ArgumentParser create_arg_parser(const std::string& prog_name, t_optio
13251325
.default_value("off");
13261326

13271327
stage_grp.add_argument<bool, ParseOnOff>(args.do_analytical_placement, "--analytical_place")
1328-
.help("Run analytical placement")
1328+
.help("Run analytical placement. Analytical Placement uses an integrated packing and placement algorithm, using information from the primitive level to improve clustering and placement.")
13291329
.action(argparse::Action::STORE_TRUE)
13301330
.default_value("off");
13311331

0 commit comments

Comments
 (0)