1616
1717#include " AbstractMakeWireParasitics.h"
1818#include " DataType.h"
19+ #include " Graph2D.h"
1920#include " grt/GRoute.h"
2021#include " odb/geom.h"
2122#include " stt/SteinerTreeBuilder.h"
@@ -250,7 +251,6 @@ class FastRouteCore
250251 const CostParams& cost_params,
251252 float & slack_th);
252253 void convertToMazeroute ();
253- void updateCongestionHistory (int up_type, bool stop_decreasing, int & max_adj);
254254 int getOverflow2D (int * maxOverflow);
255255 int getOverflow2Dmaze (int * maxOverflow, int * tUsage);
256256 int getOverflow3D ();
@@ -259,9 +259,6 @@ class FastRouteCore
259259 int & posY,
260260 int dir,
261261 int & radius);
262- void str_accu (int rnd);
263- void InitLastUsage (int upType);
264- void InitEstUsage ();
265262 void SaveLastRouteLen ();
266263 void checkAndFixEmbeddedTree (const int net_id);
267264 bool areEdgesOverlapping (const int net_id,
@@ -274,8 +271,7 @@ class FastRouteCore
274271 void routeLShape (const TreeNode& startpoint,
275272 const TreeNode& endpoint,
276273 std::vector<std::pair<short , short >>& blocked_positions,
277- std::vector<short >& new_route_x,
278- std::vector<short >& new_route_y);
274+ std::vector<GPoint3D>& new_route);
279275 void convertToMazerouteNet (const int netID);
280276 void setupHeap (const int netID,
281277 const int edgeID,
@@ -349,9 +345,7 @@ class FastRouteCore
349345 int n2,
350346 std::vector<TreeEdge>& treeedges,
351347 int edge_n1n2,
352- std::vector<int >& gridsX_n1n2,
353- std::vector<int >& gridsY_n1n2,
354- std::vector<int >& gridsL_n1n2);
348+ std::vector<GPoint3D>& grids_n1n2);
355349 void updateRouteType13D (int netID,
356350 std::vector<TreeNode>& treenodes,
357351 int n1,
@@ -500,7 +494,7 @@ class FastRouteCore
500494 */
501495 bool checkRoute2DTree (int netID);
502496 void removeLoops ();
503- void netedgeOrderDec (int netID);
497+ void netedgeOrderDec (int netID, std::vector<OrderNetEdge>& net_eo );
504498 void printTree2D (int netID);
505499 void printEdge2D (int netID, int edgeID);
506500 void printEdge3D (int netID, int edgeID);
@@ -603,19 +597,17 @@ class FastRouteCore
603597
604598 std::vector<FrNet*> nets_;
605599 std::unordered_map<odb::dbNet*, int > db_net_id_map_; // db net -> net id
606- std::vector<OrderNetEdge> net_eo_;
607- std::vector<std::vector<int >>
608- gxs_; // the copy of xs for nets, used for second FLUTE
609- std::vector<std::vector<int >>
610- gys_; // the copy of xs for nets, used for second FLUTE
611- std::vector<std::vector<int >>
612- gs_; // the copy of vertical sequence for nets, used for second FLUTE
600+ // the copy of xs for nets, used for second FLUTE
601+ std::vector<std::vector<int >> gxs_;
602+ // the copy of xs for nets, used for second FLUTE
603+ std::vector<std::vector<int >> gys_;
604+ // the copy of vertical sequence for nets, used for second FLUTE
605+ std::vector<std::vector<int >> gs_;
613606 std::vector<std::vector<Segment>> seglist_; // indexed by netID, segID
614607 std::vector<OrderNetPin> tree_order_pv_;
615608 std::vector<OrderTree> tree_order_cong_;
616609
617- multi_array<Edge, 2 > v_edges_; // The way it is indexed is (Y, X)
618- multi_array<Edge, 2 > h_edges_; // The way it is indexed is (Y, X)
610+ Graph2D graph2d_;
619611 multi_array<Edge3D, 3 > h_edges_3D_; // The way it is indexed is (Layer, Y, X)
620612 multi_array<Edge3D, 3 > v_edges_3D_; // The way it is indexed is (Layer, Y, X)
621613 multi_array<int , 2 > corr_edge_;
@@ -642,8 +634,6 @@ class FastRouteCore
642634 std::unordered_map<Tile, interval_set<int >, boost::hash<Tile>>
643635 horizontal_blocked_intervals_;
644636
645- std::set<std::pair<int , int >> h_used_ggrid_;
646- std::set<std::pair<int , int >> v_used_ggrid_;
647637 std::vector<int > net_ids_;
648638
649639 // Maze 3D variables
0 commit comments