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
Copy file name to clipboardExpand all lines: doc/src/vpr/command_line_usage.rst
+29Lines changed: 29 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -95,6 +95,12 @@ VPR runs all stages of (pack, place, route, and analysis) if none of :option:`--
95
95
96
96
**Default:** ``off``
97
97
98
+
.. option:: --legalize
99
+
100
+
Reconstruct a clustering and placement solution from an input flat placement file (use of this option supercedes option:: --pack).
101
+
102
+
**Default:** ``off``
103
+
98
104
.. _graphics_options:
99
105
100
106
Graphics Options
@@ -334,6 +340,12 @@ Use the options below to override this default naming behaviour.
334
340
335
341
**Default:** :option:`circuit <circuit>`.route
336
342
343
+
.. option:: --flat_place_file <file>
344
+
345
+
Path to input :ref:`flat placement file <vpr_flat_placement_file>`.
346
+
347
+
**Default:** :option:`circuit <circuit>`.route
348
+
337
349
.. option:: --sdc_file <file>
338
350
339
351
Path to SDC timing constraints file.
@@ -927,6 +939,11 @@ Setting any of the following 5 options selects :ref:`Dusty's annealing schedule
927
939
928
940
**Default:** ``-2``
929
941
942
+
.. option:: --write_flat_place <file>
943
+
944
+
Write out a post-placement flat placement file (see :ref:`Flat Placement File Format<vpr_flat_placement_file>`).
945
+
946
+
**Default:** ``off``
930
947
931
948
.. _timing_driven_placer_options:
932
949
@@ -1845,6 +1862,18 @@ The following options are used to enable server mode in VPR.
1845
1862
1846
1863
**Default:** ``60555``
1847
1864
1865
+
Legalizer Options
1866
+
^^^^^^^^^^^^^^^^^^^^^^^^
1867
+
The following options are available when VPR's legalizer is invoked to reconstruct a clustering and placement solution from a flat placement file (see :ref:`Flat Placement File Format<vpr_flat_placement_file>`).
1868
+
1869
+
.. note:: Use :option:`vpr --legalize` and `vpr --flat_place_file <file>` to invoke the legalizer and specify an input flat placement file.
1870
+
1871
+
.. option:: --write_fixed_clusters <file>
1872
+
1873
+
Write out a (possibly incomplete) clustered placement file listing placement coordinates for clusters reconstructed from an input flat placement file. If placement is run after the legalizer, this file is automatically set as an input placement constraints file.
Copy file name to clipboardExpand all lines: doc/src/vpr/file_formats.rst
+62Lines changed: 62 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -738,6 +738,68 @@ An example listing for a global net is given below.
738
738
Block pksi_185_ (#432) at (5,48), pinclass 2
739
739
Block n_n2879 (#433) at (49,23), pinclass 2
740
740
741
+
.. _vpr_flat_placement_file:
742
+
743
+
Flat Placement File Format (.flat_place)
744
+
----------------------------------------
745
+
The flat placement file contains the information needed for VPR's legalizer to reconstruct a clustering and placement solution,
746
+
inferring mode and intra-cluster routing information and correcting legality violations as needed.
747
+
748
+
Each line in the flat placement file corresponds to a netlist primitive and has the following format::
749
+
750
+
primitive_name X Y Subtile Site # optional extra info
751
+
752
+
The ``primitive_name`` is the netlist name of the primitive (see :ref:`VPR netlist naming conventions<vpr_blif_naming_convention_primitives>`).
753
+
``X``, ``Y``, and ``Subtile`` describe the placement coordinates of the complex block within which the primitive should be placed (see :ref:`VPR Placement File Format<vpr_place_file>`).
754
+
``Site`` is the ``flat site index`` on which the primitive should be placed. The flat site index is the index of a primitive site within its primitive type within its complex block type. Values are in [0...total_primitive_count-1], e.g. if there are 10 ALMs per cluster, 2 FFS and 2 LUTs per ALM, then flat site indices for FFs would run from 0 to 19, and flat site indices for LUTs would run from 0 to 19.
755
+
Optional information, e.g. cluster index or primitive type name, may be included after the `Site`; the legalizer ignores this information.
756
+
757
+
Example flat placement file entries are shown below:
758
+
759
+
.. code-block:: none
760
+
:caption: Example flat placement file entries
761
+
:linenos:
762
+
763
+
# netlist primitive name X Y subtile site # optional info
For complex pack molecules such as carry chains (see :ref: `Pack Patterns in <arch_complex_blocks>`), it is only necessary to include the root primitive in the flat placement file; the legalizer ignores non-root primitives and places all primitives in each pack molecule based on the root primitive entry. In the example file above, all lcell_comb instances shown are part of a carry chain segment, and so all except the root primitive are ignored.
795
+
VPR's legalizer does not require the flat placement file to contain every primitive in the netlist; it will reconstruct the portion of the netlist and print a warning if the file does not cover the entire netlist. This functionality is useful for debugging legalization in an external placement tool.
796
+
797
+
.. note:: Use :option:`vpr --legalize` and `vpr --flat_place_file <file>` to invoke the legalizer and specify an input flat placement file.
798
+
799
+
.. note: Use :option:`vpr --write_flat_place <file>` to write out a post-placement flat placement file. Use :option:`vpr --echo_file on` to write out a (possibly incomplete) post-legalization flat placement file (the file will be named `post_legalizer_flat_placement.echo`).
800
+
801
+
.. note: A flat placement file must correspond to a specific XML architecture file and a specific fixed size device layout (see :ref: `FPGA Grid Layout <arch_grid_layout>`). Use :option:`vpr --device <fixed layout name>` to specify a fixed device layout.
0 commit comments