Skip to content

Commit 96ccbb8

Browse files
committed
vpr: Add fix_clusters option to allow users to lock down any block to an x, y, subtile location
1 parent 2a07152 commit 96ccbb8

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

libs/EXTERNAL/libargparse/argparse_test.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ struct Args {
5151
ArgValue<float> exit_t;
5252
ArgValue<float> alpha_t;
5353
ArgValue<std::string> fix_pins;
54+
ArgValue<std::string> fix_clusters;
5455
ArgValue<std::string> place_algorithm;
5556
ArgValue<size_t> place_chan_width;
5657

@@ -302,6 +303,13 @@ int main(
302303
" or a file specifying the pad locations.")
303304
.default_value("off")
304305
.show_in(argparse::ShowIn::HELP_ONLY);
306+
place_grp.add_argument(args.fix_clusters, "--fix_clusters")
307+
.help("Fixes block locations during placement."
308+
" Can be 'random' for a random initial assignment,"
309+
" 'off' to allow the place to optimize block locations,"
310+
" or a file specifying the block locations.")
311+
.default_value("off")
312+
.show_in(argparse::ShowIn::HELP_ONLY);
305313
place_grp.add_argument(args.place_algorithm, "--place_algorithm")
306314
.help("Controls which placement algorithm is used")
307315
.default_value("path_timing_driven")

vpr/src/base/read_options.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1528,11 +1528,20 @@ argparse::ArgumentParser create_arg_parser(std::string prog_name, t_options& arg
15281528
.help(
15291529
"Fixes I/O pad locations during placement. Valid options:\n"
15301530
" * 'free' allows placement to optimize pad locations\n"
1531-
" * 'random' fixes pad locations to arbitraray locations\n"
1531+
" * 'random' fixes pad locations to arbitrary locations\n"
15321532
" * path to a file specifying pad locations (.place format with only pads specified).")
15331533
.default_value("free")
15341534
.show_in(argparse::ShowIn::HELP_ONLY);
15351535

1536+
place_grp.add_argument(args.pad_loc_file, "--fix_clusters")
1537+
.help(
1538+
"Fixes block locations during placement. Valid options:\n"
1539+
" * 'free' allows placement to optimize block locations\n"
1540+
" * 'random' fixes block locations to arbitrary locations\n"
1541+
" * path to a file specifying block locations (.place format with only pads specified).")
1542+
.default_value("free")
1543+
.show_in(argparse::ShowIn::HELP_ONLY);
1544+
15361545
place_grp.add_argument<e_place_algorithm, ParsePlaceAlgorithm>(args.PlaceAlgorithm, "--place_algorithm")
15371546
.help("Controls which placement algorithm is used")
15381547
.default_value("path_timing_driven")

0 commit comments

Comments
 (0)