Skip to content

merged vpr_context.h read_options SetupVPR #742

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,10 @@ file(COPY
${PATCH_DIR}/base_fix/PATCHED/read_circuit.cpp
${PATCH_DIR}/base_fix/PATCHED/read_circuit.h
${PATCH_DIR}/base_fix/PATCHED/vpr_types.h
##${PATCH_DIR}/base_fix/PATCHED/read_options.cpp
##${PATCH_DIR}/base_fix/PATCHED/read_options.h
##${PATCH_DIR}/base_fix/PATCHED/SetupVPR.cpp
${PATCH_DIR}/base_fix/PATCHED/vpr_context.h
${PATCH_DIR}/base_fix/PATCHED/read_options.cpp
${PATCH_DIR}/base_fix/PATCHED/read_options.h
${PATCH_DIR}/base_fix/PATCHED/SetupVPR.cpp
DESTINATION ${TARGET_DIR})
message(STATUS "NOTE: COPIED ${PATCH_DIR}/base_fix/PATCHED/read_.*\n to ${TARGET_DIR}/\n")

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

## Logical Levels
#FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
# ${UTIL_SRC_DIR}/rsbe_utils.h
# DESTINATION
# ${VPR_DEST_DIR}/src/util/
#)
#message(STATUS "NOTE: ADDED to VPR src/util: rsbe_utils.cpp,h")
FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
${UTIL_SRC_DIR}/rsbe_utils.h
DESTINATION
${VPR_DEST_DIR}/src/util/
)
message(STATUS "NOTE: ADDED to VPR src/util: rsbe_utils.cpp,h")

# Logical Levels
#FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp
Expand Down
40 changes: 34 additions & 6 deletions include/base_fix/PATCHED/SetupVPR.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ static void SetupAnnealSched(const t_options& Options,
static void SetupRouterOpts(const t_options& Options, t_router_opts* RouterOpts);
static void SetupNocOpts(const t_options& Options,
t_noc_opts* NocOpts);
static void SetupServerOpts(const t_options& Options,
t_server_opts* ServerOpts);
static void SetupRoutingArch(const t_arch& Arch, t_det_routing_arch* RoutingArch);
static void SetupTiming(const t_options& Options, const bool TimingEnabled, t_timing_inf* Timing);
static void SetupSwitches(const t_arch& Arch,
Expand Down Expand Up @@ -99,6 +101,7 @@ void SetupVPR(const t_options* Options,
t_router_opts* RouterOpts,
t_analysis_opts* AnalysisOpts,
t_noc_opts* NocOpts,
t_server_opts* ServerOpts,
t_det_routing_arch* RoutingArch,
std::vector<t_lb_type_rr_node>** PackerRRGraphs,
std::vector<t_segment_inf>& Segments,
Expand All @@ -125,6 +128,7 @@ void SetupVPR(const t_options* Options,
FileNameOpts->ArchFile = Options->ArchFile;
FileNameOpts->CircuitFile = Options->CircuitFile;
FileNameOpts->NetFile = Options->NetFile;
FileNameOpts->FlatPlaceFile = Options->FlatPlaceFile;
FileNameOpts->PlaceFile = Options->PlaceFile;
FileNameOpts->RouteFile = Options->RouteFile;
FileNameOpts->ActFile = Options->ActFile;
Expand All @@ -133,6 +137,8 @@ void SetupVPR(const t_options* Options,
FileNameOpts->out_file_prefix = Options->out_file_prefix;
FileNameOpts->read_vpr_constraints_file = Options->read_vpr_constraints_file;
FileNameOpts->write_vpr_constraints_file = Options->write_vpr_constraints_file;
FileNameOpts->write_constraints_file = Options->write_constraints_file;
FileNameOpts->write_flat_place_file = Options->write_flat_place_file;
FileNameOpts->write_block_usage = Options->write_block_usage;

FileNameOpts->verify_file_digests = Options->verify_file_digests;
Expand All @@ -144,6 +150,7 @@ void SetupVPR(const t_options* Options,
SetupAnalysisOpts(*Options, *AnalysisOpts);
SetupPowerOpts(*Options, PowerOpts, Arch);
SetupNocOpts(*Options, NocOpts);
SetupServerOpts(*Options, ServerOpts);

if (readArchFile == true) {
vtr::ScopedStartFinishTimer t("Loading Architecture Description");
Expand Down Expand Up @@ -235,6 +242,7 @@ void SetupVPR(const t_options* Options,
//Setup the default flow, if no specific stages specified
//do all
if (!Options->do_packing
&& !Options->do_legalize
&& !Options->do_placement
&& !Options->do_routing
&& !Options->do_analysis) {
Expand Down Expand Up @@ -271,6 +279,11 @@ void SetupVPR(const t_options* Options,
if (Options->do_packing) {
PackerOpts->doPacking = STAGE_DO;
}

if (Options->do_legalize) {
PackerOpts->doPacking = STAGE_LOAD;
PackerOpts->load_flat_placement = true;
}
}

ShowSetup(*vpr_setup);
Expand Down Expand Up @@ -401,7 +414,7 @@ static void SetupRoutingArch(const t_arch& Arch,
RoutingArch->Fs = Arch.Fs;
RoutingArch->subFs = Arch.subFs;
RoutingArch->directionality = BI_DIRECTIONAL;
if (Arch.Segments.size()) {
if (!Arch.Segments.empty()) {
RoutingArch->directionality = Arch.Segments[0].directionality;
}

Expand Down Expand Up @@ -429,6 +442,7 @@ static void SetupRouterOpts(const t_options& Options, t_router_opts* RouterOpts)
RouterOpts->min_incremental_reroute_fanout = Options.min_incremental_reroute_fanout;
RouterOpts->incr_reroute_delay_ripup = Options.incr_reroute_delay_ripup;
RouterOpts->pres_fac_mult = Options.pres_fac_mult;
RouterOpts->max_pres_fac = Options.max_pres_fac;
RouterOpts->route_type = Options.RouteType;

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

PackerOpts->device_layout = Options.device_layout;
PackerOpts->top_mod = Options.top_mod;

PackerOpts->timing_update_type = Options.timing_update_type;
PackerOpts->pack_num_moves = Options.pack_num_moves;
PackerOpts->pack_move_type = Options.pack_move_type;
PackerOpts->use_partitioning_in_pack = Options.use_partitioning_in_pack;
PackerOpts->number_of_molecules_in_partition = Options.number_of_molecules_in_partition;
}

static void SetupNetlistOpts(const t_options& Options, t_netlist_opts& NetlistOpts) {
Expand Down Expand Up @@ -682,8 +693,8 @@ static void SetupPlacerOpts(const t_options& Options, t_placer_opts* PlacerOpts)
PlacerOpts->enable_analytic_placer = Options.enable_analytic_placer;
// Cascade Placer
PlacerOpts->enable_cascade_placer = Options.enable_cascade_placer;
PlacerOpts->place_static_move_prob = Options.place_static_move_prob;
PlacerOpts->place_static_notiming_move_prob = Options.place_static_notiming_move_prob;
PlacerOpts->place_static_move_prob = vtr::vector<e_move_type, float>(Options.place_static_move_prob.value().begin(),
Options.place_static_move_prob.value().end());
PlacerOpts->place_high_fanout_net = Options.place_high_fanout_net;
PlacerOpts->place_bounding_box_mode = Options.place_bounding_box_mode;
PlacerOpts->RL_agent_placement = Options.RL_agent_placement;
Expand Down Expand Up @@ -762,8 +773,25 @@ static void SetupNocOpts(const t_options& Options, t_noc_opts* NocOpts) {
NocOpts->noc_latency_constraints_weighting = Options.noc_latency_constraints_weighting;
NocOpts->noc_latency_weighting = Options.noc_latency_weighting;
NocOpts->noc_congestion_weighting = Options.noc_congestion_weighting;
NocOpts->noc_centroid_weight = Options.noc_centroid_weight;
NocOpts->noc_swap_percentage = Options.noc_swap_percentage;
NocOpts->noc_sat_routing_bandwidth_resolution = Options.noc_sat_routing_bandwidth_resolution;
NocOpts->noc_sat_routing_latency_overrun_weighting = Options.noc_sat_routing_latency_overrun_weighting_factor;
NocOpts->noc_sat_routing_congestion_weighting = Options.noc_sat_routing_congestion_weighting_factor;
if (Options.noc_sat_routing_num_workers.provenance() == argparse::Provenance::SPECIFIED) {
NocOpts->noc_sat_routing_num_workers = Options.noc_sat_routing_num_workers;
} else {
NocOpts->noc_sat_routing_num_workers = (int)Options.num_workers;
}
NocOpts->noc_sat_routing_log_search_progress = Options.noc_sat_routing_log_search_progress;
NocOpts->noc_placement_file_name = Options.noc_placement_file_name;


}

static void SetupServerOpts(const t_options& Options, t_server_opts* ServerOpts) {
ServerOpts->is_server_mode_enabled = Options.is_server_mode_enabled;
ServerOpts->port_num = Options.server_port_num;
}

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) {
Expand Down
Loading
Loading