@@ -38,6 +38,8 @@ static void SetupAnnealSched(const t_options& Options,
38
38
static void SetupRouterOpts (const t_options& Options, t_router_opts* RouterOpts);
39
39
static void SetupNocOpts (const t_options& Options,
40
40
t_noc_opts* NocOpts);
41
+ static void SetupServerOpts (const t_options& Options,
42
+ t_server_opts* ServerOpts);
41
43
static void SetupRoutingArch (const t_arch& Arch, t_det_routing_arch* RoutingArch);
42
44
static void SetupTiming (const t_options& Options, const bool TimingEnabled, t_timing_inf* Timing);
43
45
static void SetupSwitches (const t_arch& Arch,
@@ -99,6 +101,7 @@ void SetupVPR(const t_options* Options,
99
101
t_router_opts* RouterOpts,
100
102
t_analysis_opts* AnalysisOpts,
101
103
t_noc_opts* NocOpts,
104
+ t_server_opts* ServerOpts,
102
105
t_det_routing_arch* RoutingArch,
103
106
std::vector<t_lb_type_rr_node>** PackerRRGraphs,
104
107
std::vector<t_segment_inf>& Segments,
@@ -125,6 +128,7 @@ void SetupVPR(const t_options* Options,
125
128
FileNameOpts->ArchFile = Options->ArchFile ;
126
129
FileNameOpts->CircuitFile = Options->CircuitFile ;
127
130
FileNameOpts->NetFile = Options->NetFile ;
131
+ FileNameOpts->FlatPlaceFile = Options->FlatPlaceFile ;
128
132
FileNameOpts->PlaceFile = Options->PlaceFile ;
129
133
FileNameOpts->RouteFile = Options->RouteFile ;
130
134
FileNameOpts->ActFile = Options->ActFile ;
@@ -133,6 +137,8 @@ void SetupVPR(const t_options* Options,
133
137
FileNameOpts->out_file_prefix = Options->out_file_prefix ;
134
138
FileNameOpts->read_vpr_constraints_file = Options->read_vpr_constraints_file ;
135
139
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 ;
136
142
FileNameOpts->write_block_usage = Options->write_block_usage ;
137
143
138
144
FileNameOpts->verify_file_digests = Options->verify_file_digests ;
@@ -144,6 +150,7 @@ void SetupVPR(const t_options* Options,
144
150
SetupAnalysisOpts (*Options, *AnalysisOpts);
145
151
SetupPowerOpts (*Options, PowerOpts, Arch);
146
152
SetupNocOpts (*Options, NocOpts);
153
+ SetupServerOpts (*Options, ServerOpts);
147
154
148
155
if (readArchFile == true ) {
149
156
vtr::ScopedStartFinishTimer t (" Loading Architecture Description" );
@@ -235,6 +242,7 @@ void SetupVPR(const t_options* Options,
235
242
// Setup the default flow, if no specific stages specified
236
243
// do all
237
244
if (!Options->do_packing
245
+ && !Options->do_legalize
238
246
&& !Options->do_placement
239
247
&& !Options->do_routing
240
248
&& !Options->do_analysis ) {
@@ -271,6 +279,11 @@ void SetupVPR(const t_options* Options,
271
279
if (Options->do_packing ) {
272
280
PackerOpts->doPacking = STAGE_DO;
273
281
}
282
+
283
+ if (Options->do_legalize ) {
284
+ PackerOpts->doPacking = STAGE_LOAD;
285
+ PackerOpts->load_flat_placement = true ;
286
+ }
274
287
}
275
288
276
289
ShowSetup (*vpr_setup);
@@ -401,7 +414,7 @@ static void SetupRoutingArch(const t_arch& Arch,
401
414
RoutingArch->Fs = Arch.Fs ;
402
415
RoutingArch->subFs = Arch.subFs ;
403
416
RoutingArch->directionality = BI_DIRECTIONAL;
404
- if (Arch.Segments .size ()) {
417
+ if (! Arch.Segments .empty ()) {
405
418
RoutingArch->directionality = Arch.Segments [0 ].directionality ;
406
419
}
407
420
@@ -429,6 +442,7 @@ static void SetupRouterOpts(const t_options& Options, t_router_opts* RouterOpts)
429
442
RouterOpts->min_incremental_reroute_fanout = Options.min_incremental_reroute_fanout ;
430
443
RouterOpts->incr_reroute_delay_ripup = Options.incr_reroute_delay_ripup ;
431
444
RouterOpts->pres_fac_mult = Options.pres_fac_mult ;
445
+ RouterOpts->max_pres_fac = Options.max_pres_fac ;
432
446
RouterOpts->route_type = Options.RouteType ;
433
447
434
448
RouterOpts->full_stats = Options.full_stats ;
@@ -597,13 +611,10 @@ void SetupPackerOpts(const t_options& Options,
597
611
PackerOpts->packer_algorithm = PACK_GREEDY; /* DEFAULT */
598
612
599
613
PackerOpts->device_layout = Options.device_layout ;
600
- PackerOpts->top_mod = Options.top_mod ;
601
614
602
615
PackerOpts->timing_update_type = Options.timing_update_type ;
603
616
PackerOpts->pack_num_moves = Options.pack_num_moves ;
604
617
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 ;
607
618
}
608
619
609
620
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)
682
693
PlacerOpts->enable_analytic_placer = Options.enable_analytic_placer ;
683
694
// Cascade Placer
684
695
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 ()) ;
687
698
PlacerOpts->place_high_fanout_net = Options.place_high_fanout_net ;
688
699
PlacerOpts->place_bounding_box_mode = Options.place_bounding_box_mode ;
689
700
PlacerOpts->RL_agent_placement = Options.RL_agent_placement ;
@@ -762,8 +773,25 @@ static void SetupNocOpts(const t_options& Options, t_noc_opts* NocOpts) {
762
773
NocOpts->noc_latency_constraints_weighting = Options.noc_latency_constraints_weighting ;
763
774
NocOpts->noc_latency_weighting = Options.noc_latency_weighting ;
764
775
NocOpts->noc_congestion_weighting = Options.noc_congestion_weighting ;
776
+ NocOpts->noc_centroid_weight = Options.noc_centroid_weight ;
765
777
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 ;
766
787
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 ;
767
795
}
768
796
769
797
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