[core] fixed a bug where pin index for subtile is wrongly calculated for clock network taps
This commit is contained in:
parent
f1ab44a212
commit
1af1306444
|
@ -177,9 +177,11 @@ int find_physical_tile_pin_index(t_physical_tile_type_ptr physical_tile,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Spot the subtile by using the index */
|
/* Spot the subtile by using the index */
|
||||||
|
size_t acc_pin_index = 0;
|
||||||
for (const t_sub_tile& sub_tile : physical_tile->sub_tiles) {
|
for (const t_sub_tile& sub_tile : physical_tile->sub_tiles) {
|
||||||
/* Bypass unmatched subtiles*/
|
/* Bypass unmatched subtiles*/
|
||||||
if (!sub_tile.capacity.is_in_range(tile_info.get_lsb())) {
|
if (!sub_tile.capacity.is_in_range(tile_info.get_lsb())) {
|
||||||
|
acc_pin_index += sub_tile.num_phy_pins;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (const t_physical_tile_port& sub_tile_port : sub_tile.ports) {
|
for (const t_physical_tile_port& sub_tile_port : sub_tile.ports) {
|
||||||
|
@ -202,6 +204,7 @@ int find_physical_tile_pin_index(t_physical_tile_type_ptr physical_tile,
|
||||||
}
|
}
|
||||||
/* Reach here, we get the port we want, return the accumulated index */
|
/* Reach here, we get the port we want, return the accumulated index */
|
||||||
size_t accumulated_pin_idx =
|
size_t accumulated_pin_idx =
|
||||||
|
acc_pin_index +
|
||||||
sub_tile_port.absolute_first_pin_index +
|
sub_tile_port.absolute_first_pin_index +
|
||||||
(sub_tile.num_phy_pins / sub_tile.capacity.total()) *
|
(sub_tile.num_phy_pins / sub_tile.capacity.total()) *
|
||||||
(tile_info.get_lsb() - sub_tile.capacity.low) +
|
(tile_info.get_lsb() - sub_tile.capacity.low) +
|
||||||
|
|
Loading…
Reference in New Issue