Skip to content

Commit 6179397

Browse files
committed
Removed global clocks from packer.
1 parent 15a2d11 commit 6179397

8 files changed

+12
-31
lines changed

vpr/src/base/SetupVPR.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -573,9 +573,6 @@ void SetupPackerOpts(const t_options& Options,
573573
PackerOpts->doPacking = STAGE_DO;
574574
}
575575

576-
//TODO: document?
577-
PackerOpts->global_clocks = true; /* DEFAULT */
578-
579576
PackerOpts->allow_unrelated_clustering = Options.allow_unrelated_clustering;
580577
PackerOpts->connection_driven = Options.connection_driven_clustering;
581578
PackerOpts->timing_driven = Options.timing_driven_clustering;

vpr/src/base/ShowSetup.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,6 @@ static void ShowPackerOpts(const t_packer_opts& PackerOpts) {
757757
VPR_FATAL_ERROR(VPR_ERROR_UNKNOWN, "Unknown packer cluster_seed_type\n");
758758
}
759759
VTR_LOG("PackerOpts.connection_driven: %s", (PackerOpts.connection_driven ? "true\n" : "false\n"));
760-
VTR_LOG("PackerOpts.global_clocks: %s", (PackerOpts.global_clocks ? "true\n" : "false\n"));
761760
VTR_LOG("PackerOpts.timing_driven: %s", (PackerOpts.timing_driven ? "true\n" : "false\n"));
762761
VTR_LOG("PackerOpts.target_external_pin_util: %s", vtr::join(PackerOpts.target_external_pin_util, " ").c_str());
763762
VTR_LOG("\n");

vpr/src/base/vpr_api.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -1379,8 +1379,7 @@ bool vpr_analysis_flow(const Netlist<>& net_list,
13791379
}
13801380

13811381
std::string post_routing_packing_output_file_name = vpr_setup.PackerOpts.output_file + ".post_routing";
1382-
write_packing_results_to_xml(vpr_setup.PackerOpts.global_clocks,
1383-
Arch.architecture_id,
1382+
write_packing_results_to_xml(Arch.architecture_id,
13841383
post_routing_packing_output_file_name.c_str());
13851384
} else {
13861385
VTR_LOG_WARN("Synchronization between packing and routing results is not applied due to illegal circuit implementation\n");

vpr/src/base/vpr_types.h

-3
Original file line numberDiff line numberDiff line change
@@ -710,8 +710,6 @@ enum e_stage_action {
710710
* Path to technology mapped user circuit in BLIF format.
711711
* @param output_file
712712
* Path to packed user circuit in net format.
713-
* @param global_clocks
714-
* ALWAYS TRUE. (Default: True)
715713
* @param timing_driven
716714
* Whether or not to do timing driven clustering. (Default: on)
717715
* @param timing_gain_weight
@@ -781,7 +779,6 @@ struct t_packer_opts {
781779
std::string circuit_file_name;
782780
std::string sdc_file_name;
783781
std::string output_file;
784-
bool global_clocks;
785782
bool timing_driven;
786783
enum e_cluster_seed cluster_seed_type;
787784
float timing_gain_weight;

vpr/src/pack/cluster_util.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ void check_and_output_clustering(ClusterLegalizer& cluster_legalizer,
7474
}
7575

7676
output_clustering(&cluster_legalizer,
77-
packer_opts.global_clocks,
7877
is_clock,
7978
arch->architecture_id,
8079
packer_opts.output_file.c_str(),

vpr/src/pack/greedy_candidate_selector.cpp

+2-6
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ void GreedyCandidateSelector::update_cluster_gain_stats_candidate_success(
296296
AtomNetId net_id = atom_netlist_.pin_net(pin_id);
297297

298298
e_gain_update gain_flag = e_gain_update::NO_GAIN;
299-
if (!is_clock_.count(net_id) || !packer_opts_.global_clocks)
299+
if (!is_clock_.count(net_id))
300300
gain_flag = e_gain_update::GAIN;
301301

302302
mark_and_update_partial_gain(cluster_gain_stats,
@@ -324,13 +324,9 @@ void GreedyCandidateSelector::update_cluster_gain_stats_candidate_success(
324324
for (AtomPinId pin_id : atom_netlist_.block_clock_pins(blk_id)) {
325325
AtomNetId net_id = atom_netlist_.pin_net(pin_id);
326326

327-
e_gain_update gain_flag = e_gain_update::GAIN;
328-
if (packer_opts_.global_clocks)
329-
gain_flag = e_gain_update::NO_GAIN;
330-
331327
mark_and_update_partial_gain(cluster_gain_stats,
332328
net_id,
333-
gain_flag,
329+
e_gain_update::NO_GAIN,
334330
blk_id,
335331
cluster_legalizer,
336332
high_fanout_net_threshold,

vpr/src/pack/output_clustering.cpp

+8-12
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ static void clustering_xml_blocks_from_netlist(pugi::xml_node& block_node,
640640
/* This routine dumps out the output netlist in a format suitable for *
641641
* input to vpr. This routine also dumps out the internal structure of *
642642
* the cluster, in essentially a graph based format. */
643-
void output_clustering(ClusterLegalizer* cluster_legalizer_ptr, bool global_clocks, const std::unordered_set<AtomNetId>& is_clock, const std::string& architecture_id, const char* out_fname, bool skip_clustering, bool from_legalizer) {
643+
void output_clustering(ClusterLegalizer* cluster_legalizer_ptr, const std::unordered_set<AtomNetId>& is_clock, const std::string& architecture_id, const char* out_fname, bool skip_clustering, bool from_legalizer) {
644644
const DeviceContext& device_ctx = g_vpr_ctx.device();
645645
const AtomNetlist& atom_nlist = g_vpr_ctx.atom().netlist();
646646

@@ -689,17 +689,15 @@ void output_clustering(ClusterLegalizer* cluster_legalizer_ptr, bool global_cloc
689689
block_node.append_child("inputs").text().set(vtr::join(inputs.begin(), inputs.end(), " ").c_str());
690690
block_node.append_child("outputs").text().set(vtr::join(outputs.begin(), outputs.end(), " ").c_str());
691691

692-
if (global_clocks) {
693-
std::vector<std::string> clocks;
694-
for (auto net_id : atom_nlist.nets()) {
695-
if (is_clock.count(net_id)) {
696-
clocks.push_back(atom_nlist.net_name(net_id));
697-
}
692+
std::vector<std::string> clocks;
693+
for (auto net_id : atom_nlist.nets()) {
694+
if (is_clock.count(net_id)) {
695+
clocks.push_back(atom_nlist.net_name(net_id));
698696
}
699-
700-
block_node.append_child("clocks").text().set(vtr::join(clocks.begin(), clocks.end(), " ").c_str());
701697
}
702698

699+
block_node.append_child("clocks").text().set(vtr::join(clocks.begin(), clocks.end(), " ").c_str());
700+
703701
if (skip_clustering == false) {
704702
if (from_legalizer) {
705703
VTR_ASSERT(cluster_legalizer_ptr != nullptr);
@@ -724,15 +722,13 @@ void output_clustering(ClusterLegalizer* cluster_legalizer_ptr, bool global_cloc
724722
* As such, this function is expected to be a standard API
725723
* which can be called anytime and anywhere after packing is finished.
726724
********************************************************************/
727-
void write_packing_results_to_xml(const bool& global_clocks,
728-
const std::string& architecture_id,
725+
void write_packing_results_to_xml(const std::string& architecture_id,
729726
const char* out_fname) {
730727
std::unordered_set<AtomNetId> is_clock = alloc_and_load_is_clock();
731728

732729
// Since the cluster legalizer is not being used to output the clustering
733730
// (from_legalizer is false), passing in nullptr.
734731
output_clustering(nullptr,
735-
global_clocks,
736732
is_clock,
737733
architecture_id,
738734
out_fname,

vpr/src/pack/output_clustering.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@ class ClusterLegalizer;
1717
/// clustered netlist. If from_legalizer is false, the clustered netlist currently
1818
/// in the global scope will be used.
1919
void output_clustering(ClusterLegalizer* cluster_legalizer_ptr,
20-
bool global_clocks,
2120
const std::unordered_set<AtomNetId>& is_clock,
2221
const std::string& architecture_id,
2322
const char* out_fname,
2423
bool skip_clustering,
2524
bool from_legalizer);
2625

27-
void write_packing_results_to_xml(const bool& global_clocks,
28-
const std::string& architecture_id,
26+
void write_packing_results_to_xml(const std::string& architecture_id,
2927
const char* out_fname);
3028

3129
#endif

0 commit comments

Comments
 (0)