Skip to content

Commit 4539a09

Browse files
authored
Merge pull request #742 from os-fpga/merged_vpr_context
merged vpr_context.h read_options SetupVPR
2 parents 91d5fbf + e26e406 commit 4539a09

File tree

6 files changed

+913
-50
lines changed

6 files changed

+913
-50
lines changed

CMakeLists.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,10 @@ file(COPY
176176
${PATCH_DIR}/base_fix/PATCHED/read_circuit.cpp
177177
${PATCH_DIR}/base_fix/PATCHED/read_circuit.h
178178
${PATCH_DIR}/base_fix/PATCHED/vpr_types.h
179-
##${PATCH_DIR}/base_fix/PATCHED/read_options.cpp
180-
##${PATCH_DIR}/base_fix/PATCHED/read_options.h
181-
##${PATCH_DIR}/base_fix/PATCHED/SetupVPR.cpp
179+
${PATCH_DIR}/base_fix/PATCHED/vpr_context.h
180+
${PATCH_DIR}/base_fix/PATCHED/read_options.cpp
181+
${PATCH_DIR}/base_fix/PATCHED/read_options.h
182+
${PATCH_DIR}/base_fix/PATCHED/SetupVPR.cpp
182183
DESTINATION ${TARGET_DIR})
183184
message(STATUS "NOTE: COPIED ${PATCH_DIR}/base_fix/PATCHED/read_.*\n to ${TARGET_DIR}/\n")
184185

@@ -268,12 +269,12 @@ file(COPY ${ENCRYPTION_CONFIG_PATH}/config.txt
268269
#)
269270

270271
## Logical Levels
271-
#FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
272-
# ${UTIL_SRC_DIR}/rsbe_utils.h
273-
# DESTINATION
274-
# ${VPR_DEST_DIR}/src/util/
275-
#)
276-
#message(STATUS "NOTE: ADDED to VPR src/util: rsbe_utils.cpp,h")
272+
FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
273+
${UTIL_SRC_DIR}/rsbe_utils.h
274+
DESTINATION
275+
${VPR_DEST_DIR}/src/util/
276+
)
277+
message(STATUS "NOTE: ADDED to VPR src/util: rsbe_utils.cpp,h")
277278

278279
# Logical Levels
279280
#FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp

include/base_fix/PATCHED/SetupVPR.cpp

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ static void SetupAnnealSched(const t_options& Options,
3838
static void SetupRouterOpts(const t_options& Options, t_router_opts* RouterOpts);
3939
static void SetupNocOpts(const t_options& Options,
4040
t_noc_opts* NocOpts);
41+
static void SetupServerOpts(const t_options& Options,
42+
t_server_opts* ServerOpts);
4143
static void SetupRoutingArch(const t_arch& Arch, t_det_routing_arch* RoutingArch);
4244
static void SetupTiming(const t_options& Options, const bool TimingEnabled, t_timing_inf* Timing);
4345
static void SetupSwitches(const t_arch& Arch,
@@ -99,6 +101,7 @@ void SetupVPR(const t_options* Options,
99101
t_router_opts* RouterOpts,
100102
t_analysis_opts* AnalysisOpts,
101103
t_noc_opts* NocOpts,
104+
t_server_opts* ServerOpts,
102105
t_det_routing_arch* RoutingArch,
103106
std::vector<t_lb_type_rr_node>** PackerRRGraphs,
104107
std::vector<t_segment_inf>& Segments,
@@ -125,6 +128,7 @@ void SetupVPR(const t_options* Options,
125128
FileNameOpts->ArchFile = Options->ArchFile;
126129
FileNameOpts->CircuitFile = Options->CircuitFile;
127130
FileNameOpts->NetFile = Options->NetFile;
131+
FileNameOpts->FlatPlaceFile = Options->FlatPlaceFile;
128132
FileNameOpts->PlaceFile = Options->PlaceFile;
129133
FileNameOpts->RouteFile = Options->RouteFile;
130134
FileNameOpts->ActFile = Options->ActFile;
@@ -133,6 +137,8 @@ void SetupVPR(const t_options* Options,
133137
FileNameOpts->out_file_prefix = Options->out_file_prefix;
134138
FileNameOpts->read_vpr_constraints_file = Options->read_vpr_constraints_file;
135139
FileNameOpts->write_vpr_constraints_file = Options->write_vpr_constraints_file;
140+
FileNameOpts->write_constraints_file = Options->write_constraints_file;
141+
FileNameOpts->write_flat_place_file = Options->write_flat_place_file;
136142
FileNameOpts->write_block_usage = Options->write_block_usage;
137143

138144
FileNameOpts->verify_file_digests = Options->verify_file_digests;
@@ -144,6 +150,7 @@ void SetupVPR(const t_options* Options,
144150
SetupAnalysisOpts(*Options, *AnalysisOpts);
145151
SetupPowerOpts(*Options, PowerOpts, Arch);
146152
SetupNocOpts(*Options, NocOpts);
153+
SetupServerOpts(*Options, ServerOpts);
147154

148155
if (readArchFile == true) {
149156
vtr::ScopedStartFinishTimer t("Loading Architecture Description");
@@ -235,6 +242,7 @@ void SetupVPR(const t_options* Options,
235242
//Setup the default flow, if no specific stages specified
236243
//do all
237244
if (!Options->do_packing
245+
&& !Options->do_legalize
238246
&& !Options->do_placement
239247
&& !Options->do_routing
240248
&& !Options->do_analysis) {
@@ -271,6 +279,11 @@ void SetupVPR(const t_options* Options,
271279
if (Options->do_packing) {
272280
PackerOpts->doPacking = STAGE_DO;
273281
}
282+
283+
if (Options->do_legalize) {
284+
PackerOpts->doPacking = STAGE_LOAD;
285+
PackerOpts->load_flat_placement = true;
286+
}
274287
}
275288

276289
ShowSetup(*vpr_setup);
@@ -401,7 +414,7 @@ static void SetupRoutingArch(const t_arch& Arch,
401414
RoutingArch->Fs = Arch.Fs;
402415
RoutingArch->subFs = Arch.subFs;
403416
RoutingArch->directionality = BI_DIRECTIONAL;
404-
if (Arch.Segments.size()) {
417+
if (!Arch.Segments.empty()) {
405418
RoutingArch->directionality = Arch.Segments[0].directionality;
406419
}
407420

@@ -429,6 +442,7 @@ static void SetupRouterOpts(const t_options& Options, t_router_opts* RouterOpts)
429442
RouterOpts->min_incremental_reroute_fanout = Options.min_incremental_reroute_fanout;
430443
RouterOpts->incr_reroute_delay_ripup = Options.incr_reroute_delay_ripup;
431444
RouterOpts->pres_fac_mult = Options.pres_fac_mult;
445+
RouterOpts->max_pres_fac = Options.max_pres_fac;
432446
RouterOpts->route_type = Options.RouteType;
433447

434448
RouterOpts->full_stats = Options.full_stats;
@@ -597,13 +611,10 @@ void SetupPackerOpts(const t_options& Options,
597611
PackerOpts->packer_algorithm = PACK_GREEDY; /* DEFAULT */
598612

599613
PackerOpts->device_layout = Options.device_layout;
600-
PackerOpts->top_mod = Options.top_mod;
601614

602615
PackerOpts->timing_update_type = Options.timing_update_type;
603616
PackerOpts->pack_num_moves = Options.pack_num_moves;
604617
PackerOpts->pack_move_type = Options.pack_move_type;
605-
PackerOpts->use_partitioning_in_pack = Options.use_partitioning_in_pack;
606-
PackerOpts->number_of_molecules_in_partition = Options.number_of_molecules_in_partition;
607618
}
608619

609620
static void SetupNetlistOpts(const t_options& Options, t_netlist_opts& NetlistOpts) {
@@ -682,8 +693,8 @@ static void SetupPlacerOpts(const t_options& Options, t_placer_opts* PlacerOpts)
682693
PlacerOpts->enable_analytic_placer = Options.enable_analytic_placer;
683694
// Cascade Placer
684695
PlacerOpts->enable_cascade_placer = Options.enable_cascade_placer;
685-
PlacerOpts->place_static_move_prob = Options.place_static_move_prob;
686-
PlacerOpts->place_static_notiming_move_prob = Options.place_static_notiming_move_prob;
696+
PlacerOpts->place_static_move_prob = vtr::vector<e_move_type, float>(Options.place_static_move_prob.value().begin(),
697+
Options.place_static_move_prob.value().end());
687698
PlacerOpts->place_high_fanout_net = Options.place_high_fanout_net;
688699
PlacerOpts->place_bounding_box_mode = Options.place_bounding_box_mode;
689700
PlacerOpts->RL_agent_placement = Options.RL_agent_placement;
@@ -762,8 +773,25 @@ static void SetupNocOpts(const t_options& Options, t_noc_opts* NocOpts) {
762773
NocOpts->noc_latency_constraints_weighting = Options.noc_latency_constraints_weighting;
763774
NocOpts->noc_latency_weighting = Options.noc_latency_weighting;
764775
NocOpts->noc_congestion_weighting = Options.noc_congestion_weighting;
776+
NocOpts->noc_centroid_weight = Options.noc_centroid_weight;
765777
NocOpts->noc_swap_percentage = Options.noc_swap_percentage;
778+
NocOpts->noc_sat_routing_bandwidth_resolution = Options.noc_sat_routing_bandwidth_resolution;
779+
NocOpts->noc_sat_routing_latency_overrun_weighting = Options.noc_sat_routing_latency_overrun_weighting_factor;
780+
NocOpts->noc_sat_routing_congestion_weighting = Options.noc_sat_routing_congestion_weighting_factor;
781+
if (Options.noc_sat_routing_num_workers.provenance() == argparse::Provenance::SPECIFIED) {
782+
NocOpts->noc_sat_routing_num_workers = Options.noc_sat_routing_num_workers;
783+
} else {
784+
NocOpts->noc_sat_routing_num_workers = (int)Options.num_workers;
785+
}
786+
NocOpts->noc_sat_routing_log_search_progress = Options.noc_sat_routing_log_search_progress;
766787
NocOpts->noc_placement_file_name = Options.noc_placement_file_name;
788+
789+
790+
}
791+
792+
static void SetupServerOpts(const t_options& Options, t_server_opts* ServerOpts) {
793+
ServerOpts->is_server_mode_enabled = Options.is_server_mode_enabled;
794+
ServerOpts->port_num = Options.server_port_num;
767795
}
768796

769797
static void find_ipin_cblock_switch_index(const t_arch& Arch, int& wire_to_arch_ipin_switch, int& wire_to_arch_ipin_switch_between_dice) {

0 commit comments

Comments
 (0)