Skip to content

Commit 755662b

Browse files
authored
Merge pull request #2591 from verilog-to-routing/resolve_merge_conflict
resolve merge conflicts.
2 parents 82a1860 + d8cd3db commit 755662b

11 files changed

+38
-142
lines changed

vpr/src/base/vpr_api.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,6 @@ bool vpr_flow(t_vpr_setup& vpr_setup, t_arch& arch) {
421421
vpr_analysis_flow(router_net_list, vpr_setup, arch, route_status, is_flat);
422422
}
423423

424-
// write out constratins
425-
write_vpr_constraints(vpr_setup);
426-
427424
//close the graphics
428425
vpr_close_graphics(vpr_setup);
429426

vpr/src/base/vpr_constraints.cpp_back

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include "vpr_constraints.h"
2+
3+
4+
UserPlaceConstraints& VprConstraints::mutable_place_constraints() {
5+
return placement_constraints_;
6+
}
7+
8+
UserRouteConstraints& VprConstraints::mutable_route_constraints() {
9+
return route_constraints_;
10+
}
11+
12+
const UserPlaceConstraints& VprConstraints::place_constraints() const {
13+
return placement_constraints_;
14+
}
15+
16+
const UserRouteConstraints& VprConstraints::route_constraints() const {
17+
return route_constraints_;
18+
}

vpr/src/base/vpr_constraints.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,21 @@ class VprConstraints {
5151
*
5252
* @param net_name the route constraint
5353
*/
54-
void add_route_constraint(RouteConstraint rc);
54+
void add_route_constraint(UserRouteConstraints rc);
5555

5656
/**
5757
* @brief returns route constraint by index
5858
*
5959
* @param index the constraint index
6060
*/
61-
const RouteConstraint get_route_constraint_by_idx(std::size_t index) const;
61+
const UserRouteConstraints get_route_constraint_by_idx(std::size_t index) const;
6262

6363
/**
6464
* @brief returns route constraint of a specific net
6565
*
6666
* @param net_name the net name
6767
*/
68-
const RouteConstraint get_route_constraint_by_net_name(std::string net_name);
68+
const UserRouteConstraints get_route_constraint_by_net_name(std::string net_name);
6969

7070
/**
7171
* @brief returns number of route constraints

vpr/src/base/vpr_constraints_reader.cpp

Lines changed: 12 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,51 +10,26 @@
1010

1111
#include <fstream>
1212
#include "vpr_constraints_reader.h"
13-
#include "vtr_token.h"
1413

1514
void load_vpr_constraints_file(const char* read_vpr_constraints_name) {
1615
vtr::ScopedStartFinishTimer timer("Reading VPR constraints from " + std::string(read_vpr_constraints_name));
1716

1817
VprConstraintsSerializer reader;
1918

20-
// file name from arguments could be a serial of files, seperated by colon ":"
21-
// at this point, caller has already checked that the required constraint file name is not emtpy
22-
int num_tokens = 0, num_file_read = 0;
23-
bool found_file = false;
24-
t_token* tokens = GetTokensFromString(read_vpr_constraints_name, &num_tokens);
25-
std::string in_tokens("");
26-
for (int i = 0; i < num_tokens; i++) {
27-
if ((tokens[i].type == TOKEN_COLON)) { // end of one input file
28-
found_file = true;
29-
} else if (i == num_tokens - 1) { // end of inputs, append token anyway
30-
in_tokens += std::string(tokens[i].data);
31-
found_file = true;
32-
} else {
33-
in_tokens += std::string(tokens[i].data);
34-
}
35-
if (found_file) {
36-
const char* file_name = in_tokens.c_str();
37-
if (vtr::check_file_name_extension(file_name, ".xml")) {
38-
try {
39-
std::ifstream file(file_name);
40-
void* context;
41-
uxsd::load_vpr_constraints_xml(reader, context, file_name, file);
42-
} catch (pugiutil::XmlError& e) {
43-
vpr_throw(VPR_ERROR_ROUTE, file_name, e.line(), "%s", e.what());
44-
}
45-
} else {
46-
VTR_LOG_WARN(
47-
"VPR constraints file '%s' may be in incorrect format. "
48-
"Expecting .xml format. Not reading file.\n",
49-
file_name);
50-
}
51-
in_tokens.clear();
52-
num_file_read++;
53-
found_file = false;
19+
if (vtr::check_file_name_extension(read_vpr_constraints_name, ".xml")) {
20+
try {
21+
std::ifstream file(read_vpr_constraints_name);
22+
void* context;
23+
uxsd::load_vpr_constraints_xml(reader, context, read_vpr_constraints_name, file);
24+
} catch (pugiutil::XmlError& e) {
25+
vpr_throw(VPR_ERROR_ROUTE, read_vpr_constraints_name, e.line(), "%s", e.what());
5426
}
27+
} else {
28+
VTR_LOG_WARN(
29+
"VPR constraints file '%s' may be in incorrect format. "
30+
"Expecting .xml format. Not reading file.\n",
31+
read_vpr_constraints_name);
5532
}
56-
VTR_LOG("Read in '%d' constraint file(s) successfully.\n", num_file_read);
57-
freeTokens(tokens, num_tokens);
5833

5934
//Update the floorplanning constraints in the floorplanning constraints context
6035
auto& floorplanning_ctx = g_vpr_ctx.mutable_floorplanning();

vpr/src/base/vpr_constraints_reader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
#ifndef VPR_CONSTRAINTS_READER_H_
66
#define VPR_CONSTRAINTS_READER_H_
77

8-
void load_vpr_constraints_files(const char* read_vpr_constraints_name);
8+
void load_vpr_constraints_file(const char* read_vpr_constraints_name);
99

1010
#endif /* VPR_CONSTRAINTS_READER_H_ */

vpr/src/base/vpr_constraints_serializer.h

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#define VPR_CONSTRAINTS_SERIALIZER_H_
33

44
#include "region.h"
5-
#include "route_constraint.h"
65
#include "vpr_constraints.h"
76
#include "partition.h"
87
#include "partition_region.h"
@@ -442,53 +441,21 @@ class VprConstraintsSerializer final : public uxsd::VprConstraintsBase<VprConstr
442441
return temp_.c_str();
443442
}
444443

445-
virtual inline void set_vpr_constraints_tool_name(const char* /*tool_name*/, void*& /*ctx*/) final {
446-
}
444+
virtual inline void set_vpr_constraints_tool_name(const char* /*tool_name*/, void*& /*ctx*/) final {}
447445

448446
virtual inline void set_vpr_constraints_constraints_comment(const char* /*constraints_comment*/, void*& /*ctx*/) final {}
449447

450448
virtual inline const char* get_vpr_constraints_constraints_comment(void*& /*ctx*/) final {
451449
return temp_.c_str();
452450
}
453-
454-
virtual inline void preallocate_vpr_constraints_partition_list(void*& /*ctx*/, size_t) final {
455-
}
456-
457-
virtual inline void* add_vpr_constraints_partition_list(void*& /*ctx*/) final {
451+
virtual inline void* init_vpr_constraints_partition_list(void*& /*ctx*/) final {
458452
return nullptr;
459453
}
460454

461455
virtual inline void finish_vpr_constraints_partition_list(void*& /*ctx*/) final {
462-
return;
463456
}
464457

465-
virtual inline size_t num_vpr_constraints_partition_list(void*& /*ctx*/) final {
466-
// only one or zero partion list is supported
467-
if (constraints_.get_num_partitions()) {
468-
return 1;
469-
}
470-
return 0;
471-
}
472-
473-
virtual inline void* get_vpr_constraints_partition_list(int, void*& /*ctx*/) final {
474-
return nullptr;
475-
}
476-
477-
virtual inline void preallocate_vpr_constraints_global_route_constraints(void*& /*ctx*/, size_t) final {
478-
}
479-
480-
virtual inline void* add_vpr_constraints_global_route_constraints(void*& /*ctx*/) final {
481-
return nullptr;
482-
}
483-
484-
virtual inline void finish_vpr_constraints_global_route_constraints(void*& /*ctx*/) final {
485-
return;
486-
}
487-
virtual inline size_t num_vpr_constraints_global_route_constraints(void*& /*ctx*/) final {
488-
return constraints_.get_route_constraint_num();
489-
}
490-
491-
virtual inline void* get_vpr_constraints_global_route_constraints(int, void*& /*cts*/) final {
458+
virtual inline void* get_vpr_constraints_partition_list(void*& /*ctx*/) final {
492459
return nullptr;
493460
}
494461

@@ -499,7 +466,6 @@ class VprConstraintsSerializer final : public uxsd::VprConstraintsBase<VprConstr
499466
return false;
500467
}
501468
virtual void finish_load() final {
502-
return;
503469
}
504470

505471
//temp data for writes

vpr/src/base/vpr_constraints_writer.cpp

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,50 +20,6 @@
2020
#include "region.h"
2121
#include "re_cluster_util.h"
2222

23-
void write_vpr_constraints(t_vpr_setup& vpr_setup) {
24-
auto& filename_opts = vpr_setup.FileNameOpts;
25-
if (!filename_opts.write_vpr_constraints_file.empty()) {
26-
std::string file_name = filename_opts.write_vpr_constraints_file;
27-
if (vtr::check_file_name_extension(file_name.c_str(), ".xml")) {
28-
VprConstraints constraints;
29-
30-
// update constraints with place info
31-
// this is to align to original place/partion constraint behavior
32-
const auto& placer_opts = vpr_setup.PlacerOpts;
33-
int horizontal_partitions = placer_opts.floorplan_num_horizontal_partitions, vertical_partitions = placer_opts.floorplan_num_vertical_partitions;
34-
if (horizontal_partitions != 0 && vertical_partitions != 0) {
35-
setup_vpr_floorplan_constraints_cutpoints(constraints, horizontal_partitions, vertical_partitions);
36-
} else {
37-
setup_vpr_floorplan_constraints_one_loc(constraints, placer_opts.place_constraint_expand, placer_opts.place_constraint_subtile);
38-
}
39-
40-
// update route constraints
41-
for (int i = 0; i < g_vpr_ctx.routing().constraints.get_route_constraint_num(); i++) {
42-
RouteConstraint rc = g_vpr_ctx.routing().constraints.get_route_constraint_by_idx(i);
43-
// note: route constraints with regexpr in input constraint file
44-
// is now replaced with the real net name and will not be written
45-
// into output file
46-
if (rc.is_valid()) {
47-
constraints.add_route_constraint(rc);
48-
}
49-
}
50-
51-
// VprConstraintsSerializer writer(g_vpr_ctx.routing().constraints);
52-
VprConstraintsSerializer writer(constraints);
53-
std::fstream fp;
54-
fp.open(file_name.c_str(), std::fstream::out | std::fstream::trunc);
55-
fp.precision(std::numeric_limits<float>::max_digits10);
56-
void* context;
57-
uxsd::write_vpr_constraints_xml(writer, context, fp);
58-
} else {
59-
VPR_FATAL_ERROR(VPR_ERROR_ROUTE,
60-
"Unknown extension on output %s",
61-
file_name.c_str());
62-
}
63-
}
64-
return;
65-
}
66-
6723
void write_vpr_floorplan_constraints(const char* file_name, int expand, bool subtile, int horizontal_partitions, int vertical_partitions) {
6824
VprConstraints constraints;
6925

vpr/src/tileable_rr_graph/tileable_rr_graph_builder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ void build_tileable_unidir_rr_graph(const std::vector<t_physical_tile_type>& typ
316316
}
317317

318318
/* No clock network support yet; Does not support flatten rr_graph yet */
319-
check_rr_graph(device_ctx.rr_graph, types, device_ctx.rr_indexed_data, grids, device_ctx.chan_width, GRAPH_UNIDIR, OPEN, false);
319+
check_rr_graph(device_ctx.rr_graph, types, device_ctx.rr_indexed_data, grids, device_ctx.chan_width, GRAPH_UNIDIR, false);
320320

321321
/************************************************************************
322322
* Free all temp stucts

vpr/src/util/vpr_utils.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2289,22 +2289,6 @@ bool is_inter_cluster_node(const RRGraphView& rr_graph_view,
22892289
}
22902290
}
22912291

2292-
void apply_route_constraints(VprConstraints& vpr_constraint) {
2293-
ClusteringContext& mutable_cluster_ctx = g_vpr_ctx.mutable_clustering();
2294-
for (auto net_id : mutable_cluster_ctx.clb_nlist.nets()) {
2295-
std::string net_name = mutable_cluster_ctx.clb_nlist.net_name(net_id);
2296-
const RouteConstraint rc = vpr_constraint.get_route_constraint_by_net_name(net_name);
2297-
if (rc.is_valid()) {
2298-
mutable_cluster_ctx.clb_nlist.set_net_is_global(net_id, true);
2299-
if (rc.route_model() == "route") {
2300-
mutable_cluster_ctx.clb_nlist.set_net_is_ignored(net_id, false);
2301-
} else {
2302-
mutable_cluster_ctx.clb_nlist.set_net_is_ignored(net_id, true);
2303-
}
2304-
}
2305-
}
2306-
}
2307-
23082292
int get_rr_node_max_ptc(const RRGraphView& rr_graph_view,
23092293
RRNodeId node_id,
23102294
bool is_flat) {

0 commit comments

Comments
 (0)