Skip to content

Commit 7fa7ca3

Browse files
authored
Merge pull request #8735 from eder-matheus/grt_non_adj_layers
grt: create via stack when connecting merged nets
2 parents 4ab5376 + 6b862cb commit 7fa7ca3

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/grt/src/GlobalRouter.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4601,12 +4601,16 @@ std::vector<GSegment> GlobalRouter::createConnectionForPositions(
46014601
connection.emplace_back(x2, y1, layer_ver, x2, y2, layer_ver);
46024602

46034603
// Add vias if the additional connections are not touching the existing
4604-
// routing.
4604+
// routing. The via stack can cross multiple routing layers.
46054605
if (layer1 < layer_hor) {
4606-
connection.emplace_back(x1, y1, layer1, x1, y1, layer_hor);
4606+
for (int l = layer1; l < layer_hor; l++) {
4607+
connection.emplace_back(x1, y1, l, x1, y1, l + 1);
4608+
}
46074609
}
46084610
if (layer2 < layer_ver) {
4609-
connection.emplace_back(x2, y2, layer_ver, x2, y2, layer2);
4611+
for (int l = layer2; l < layer_ver; l++) {
4612+
connection.emplace_back(x2, y2, l, x2, y2, l + 1);
4613+
}
46104614
}
46114615
}
46124616

0 commit comments

Comments
 (0)