Skip to content

Commit

Permalink
Merge remote-tracking branch 'private/master' into gpl-revert-if-diverge
Browse files Browse the repository at this point in the history
  • Loading branch information
gudeh committed Jan 23, 2025
2 parents b1272df + 2d84f44 commit f01415c
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 25 deletions.
24 changes: 16 additions & 8 deletions src/ppl/src/IOPlacer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -889,7 +889,7 @@ void IOPlacer::findSlots(const std::set<int>& layers, Edge edge)
: core_->getNumTracksY().at(layer);

std::vector<Point> slots;
int min_dst_pins;
int min_dst_pins = 0;
for (int l = 0; l < layer_min_distances.size(); l++) {
int curr_x, curr_y, start_idx, end_idx;
int tech_min_dst = layer_min_distances[l];
Expand Down Expand Up @@ -964,19 +964,27 @@ void IOPlacer::findSlots(const std::set<int>& layers, Edge edge)
return p1.getY() < p2.getY();
});

// Remove slots that violates the min distance before reversing the vector.
// This ensures that mirrored positions will exists for every slot.
Point last = slots[0];
for (auto it = slots.begin(); it != slots.end();) {
Point pos = *it;
if (pos != last && std::abs(last.getX() - pos.getX()) < min_dst_pins
&& std::abs(last.getY() - pos.getY()) < min_dst_pins) {
it = slots.erase(it);
} else {
last = pos;
++it;
}
}

if (edge == Edge::top || edge == Edge::left) {
std::reverse(slots.begin(), slots.end());
}

Point last_pos = slots[0];
for (const Point& pos : slots) {
bool blocked = checkBlocked(edge, pos, layer);
if (pos == last_pos
|| std::abs(last_pos.getX() - pos.getX()) >= min_dst_pins
|| std::abs(last_pos.getY() - pos.getY()) >= min_dst_pins) {
slots_.push_back({blocked, false, pos, layer, edge});
last_pos = pos;
}
slots_.push_back({blocked, false, pos, layer, edge});
}
}
}
Expand Down
32 changes: 16 additions & 16 deletions src/ppl/test/multi_track_pattern.defok
Original file line number Diff line number Diff line change
Expand Up @@ -521,15 +521,15 @@ PINS 54 ;
- clk + NET clk + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 12645 ) N ;
+ PLACED ( 18 12735 ) N ;
- req_msg[0] + NET req_msg[0] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
+ PLACED ( 7980 16158 ) N ;
- req_msg[10] + NET req_msg[10] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 9675 ) N ;
+ PLACED ( 18 9765 ) N ;
- req_msg[11] + NET req_msg[11] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand Down Expand Up @@ -565,19 +565,19 @@ PINS 54 ;
- req_msg[19] + NET req_msg[19] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 10215 ) N ;
+ PLACED ( 18 10305 ) N ;
- req_msg[1] + NET req_msg[1] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
+ PLACED ( 7020 16158 ) N ;
- req_msg[20] + NET req_msg[20] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 7785 ) N ;
+ PLACED ( 18 7875 ) N ;
- req_msg[21] + NET req_msg[21] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 6435 ) N ;
+ PLACED ( 18 6525 ) N ;
- req_msg[22] + NET req_msg[22] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand All @@ -597,7 +597,7 @@ PINS 54 ;
- req_msg[26] + NET req_msg[26] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 7515 ) N ;
+ PLACED ( 18 7605 ) N ;
- req_msg[27] + NET req_msg[27] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand Down Expand Up @@ -625,15 +625,15 @@ PINS 54 ;
- req_msg[3] + NET req_msg[3] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 9405 ) N ;
+ PLACED ( 18 9495 ) N ;
- req_msg[4] + NET req_msg[4] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 8595 ) N ;
+ PLACED ( 18 8685 ) N ;
- req_msg[5] + NET req_msg[5] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 6165 ) N ;
+ PLACED ( 18 5985 ) N ;
- req_msg[6] + NET req_msg[6] + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand All @@ -653,7 +653,7 @@ PINS 54 ;
- req_rdy + NET req_rdy + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 11025 ) N ;
+ PLACED ( 18 11115 ) N ;
- req_val + NET req_val + DIRECTION INPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand Down Expand Up @@ -693,27 +693,27 @@ PINS 54 ;
- resp_msg[1] + NET resp_msg[1] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 8865 ) N ;
+ PLACED ( 18 8955 ) N ;
- resp_msg[2] + NET resp_msg[2] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
+ PLACED ( 5724 16158 ) N ;
- resp_msg[3] + NET resp_msg[3] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 9945 ) N ;
+ PLACED ( 18 10035 ) N ;
- resp_msg[4] + NET resp_msg[4] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 8055 ) N ;
+ PLACED ( 18 8145 ) N ;
- resp_msg[5] + NET resp_msg[5] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
+ PLACED ( 5580 42 ) N ;
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 6795 ) N ;
- resp_msg[6] + NET resp_msg[6] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M2 ( -18 -9 ) ( 19 9 )
+ PLACED ( 18 6975 ) N ;
+ PLACED ( 18 7065 ) N ;
- resp_msg[7] + NET resp_msg[7] + DIRECTION OUTPUT + USE SIGNAL
+ PORT
+ LAYER M5 ( -12 -42 ) ( 12 42 )
Expand Down
2 changes: 1 addition & 1 deletion src/ppl/test/multi_track_pattern.ok
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ Found 0 macro blocks.
[INFO PPL-0004] Number of I/O w/o sink 0
[INFO PPL-0005] Slots per section 200
[INFO PPL-0008] Successfully assigned pins to sections.
[INFO PPL-0012] I/O nets HPWL: 308.32 um.
[INFO PPL-0012] I/O nets HPWL: 307.18 um.
No differences found.

0 comments on commit f01415c

Please sign in to comment.