Skip to content

Commit 4104e23

Browse files
Fc for OPIN-CHANZ can be 1
1 parent 1f13be8 commit 4104e23

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

vpr/src/route/rr_graph_generation/rr_graph.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,7 +1319,7 @@ std::vector<vtr::Matrix<int>> alloc_and_load_actual_fc(const std::vector<t_physi
13191319
} else {
13201320
// General case indicating that this pin connects to general-purpose routing
13211321

1322-
//Calculate how many connections there should be across all the pins in this fc_spec
1322+
// Calculate how many connections there should be across all the pins in this fc_spec
13231323
int total_connections = 0;
13241324
if (fc_spec.fc_value_type == e_fc_value_type::FRACTIONAL) {
13251325
float conns_per_pin = fac * sets_per_seg_type[iseg] * fc_spec.fc_value;
@@ -1328,14 +1328,14 @@ std::vector<vtr::Matrix<int>> alloc_and_load_actual_fc(const std::vector<t_physi
13281328
} else {
13291329
VTR_ASSERT(fc_spec.fc_value_type == e_fc_value_type::ABSOLUTE);
13301330

1331-
if (std::fmod(fc_spec.fc_value, fac) != 0.) {
1331+
if (std::fmod(fc_spec.fc_value, fac) != 0. && segment_inf[iseg].parallel_axis != e_parallel_axis::Z_AXIS) {
13321332
VPR_FATAL_ERROR(VPR_ERROR_ROUTE, "Absolute Fc value must be a multiple of %d (was %f) between block pin '%s' and wire segment '%s'",
13331333
fac, fc_spec.fc_value,
13341334
block_type_pin_index_to_name(&type, fc_spec.pins[0], is_flat).c_str(),
13351335
segment_inf[iseg].name.c_str());
13361336
}
13371337

1338-
if (fc_spec.fc_value < fac) {
1338+
if (fc_spec.fc_value < fac && segment_inf[iseg].parallel_axis != e_parallel_axis::Z_AXIS) {
13391339
VPR_FATAL_ERROR(VPR_ERROR_ROUTE, "Absolute Fc value must be at least %d (was %f) between block pin '%s' to wire segment %s",
13401340
fac, fc_spec.fc_value,
13411341
block_type_pin_index_to_name(&type, fc_spec.pins[0], is_flat).c_str(),

0 commit comments

Comments
 (0)