Skip to content

Commit 1c79c87

Browse files
authored
Merge pull request #8987 from eder-matheus/grt_real_capacity
grt: improve capacity calculation
2 parents 6db0147 + e76cd82 commit 1c79c87

File tree

83 files changed

+82807
-82505
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+82807
-82505
lines changed

src/gpl/test/simple01-rd.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,14 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
7979
[INFO GPL-0065] TotalRouteOverflowV2: 0.0000
8080
[INFO GPL-0066] OverflowTileCnt2: 0
8181
[INFO GPL-0067] 0.5%RC: 0.9733
82-
[INFO GPL-0068] 1.0%RC: 0.9407
83-
[INFO GPL-0069] 2.0%RC: 0.8615
84-
[INFO GPL-0070] 5.0%RC: 0.7035
82+
[INFO GPL-0068] 1.0%RC: 0.9481
83+
[INFO GPL-0069] 2.0%RC: 0.8652
84+
[INFO GPL-0070] 5.0%RC: 0.6905
8585
[INFO GPL-0071] 0.5rcK: 1.00
8686
[INFO GPL-0072] 1.0rcK: 1.00
8787
[INFO GPL-0073] 2.0rcK: 0.00
8888
[INFO GPL-0074] 5.0rcK: 0.00
89-
[INFO GPL-0075] Final routing congestion: 0.95703703
89+
[INFO GPL-0075] Final routing congestion: 0.96074075
9090
[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(1.2500), end routability optimization.
9191
[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully.
9292
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
@@ -103,7 +103,7 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
103103
[INFO GPL-1001] Global placement finished at iteration 355
104104
[INFO GPL-1003] Routability mode iteration count: 64
105105
[INFO GPL-0039] Number of routing layers: 0
106-
[INFO GPL-1005] Routability final weighted congestion: 0.4408
106+
[INFO GPL-1005] Routability final weighted congestion: 0.4360
107107
[INFO GPL-1002] Placed Cell Area 619.7347
108108
[INFO GPL-1003] Available Free Area 953.8760
109109
[INFO GPL-1004] Minimum Feasible Density 0.6500 (cell_area / free_area)

src/gpl/test/simple02-rd.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,14 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
7979
[INFO GPL-0065] TotalRouteOverflowV2: 0.0000
8080
[INFO GPL-0066] OverflowTileCnt2: 0
8181
[INFO GPL-0067] 0.5%RC: 0.9733
82-
[INFO GPL-0068] 1.0%RC: 0.9407
83-
[INFO GPL-0069] 2.0%RC: 0.8615
84-
[INFO GPL-0070] 5.0%RC: 0.7035
82+
[INFO GPL-0068] 1.0%RC: 0.9481
83+
[INFO GPL-0069] 2.0%RC: 0.8652
84+
[INFO GPL-0070] 5.0%RC: 0.6905
8585
[INFO GPL-0071] 0.5rcK: 1.00
8686
[INFO GPL-0072] 1.0rcK: 1.00
8787
[INFO GPL-0073] 2.0rcK: 0.00
8888
[INFO GPL-0074] 5.0rcK: 0.00
89-
[INFO GPL-0075] Final routing congestion: 0.95703703
89+
[INFO GPL-0075] Final routing congestion: 0.96074075
9090
[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(1.0000), end routability optimization.
9191
[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully.
9292
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
@@ -103,7 +103,7 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
103103
[INFO GPL-1001] Global placement finished at iteration 355
104104
[INFO GPL-1003] Routability mode iteration count: 64
105105
[INFO GPL-0039] Number of routing layers: 0
106-
[INFO GPL-1005] Routability final weighted congestion: 0.4408
106+
[INFO GPL-1005] Routability final weighted congestion: 0.4360
107107
[INFO GPL-1002] Placed Cell Area 619.7347
108108
[INFO GPL-1003] Available Free Area 953.8760
109109
[INFO GPL-1004] Minimum Feasible Density 0.6500 (cell_area / free_area)

src/gpl/test/simple03-rd.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
7777
[INFO GPL-0041] Total routing overflow: 0.0000
7878
[INFO GPL-0042] Number of overflowed tiles: 0 (0.00%)
7979
[INFO GPL-0043] Average top 0.5% routing congestion: 0.4737
80-
[INFO GPL-0044] Average top 1.0% routing congestion: 0.4729
81-
[INFO GPL-0045] Average top 2.0% routing congestion: 0.4659
82-
[INFO GPL-0046] Average top 5.0% routing congestion: 0.4496
83-
[INFO GPL-0047] Routability iteration weighted routing congestion: 0.4733
80+
[INFO GPL-0044] Average top 1.0% routing congestion: 0.4651
81+
[INFO GPL-0045] Average top 2.0% routing congestion: 0.4568
82+
[INFO GPL-0046] Average top 5.0% routing congestion: 0.4382
83+
[INFO GPL-0047] Routability iteration weighted routing congestion: 0.4694
8484
[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(1.2500), end routability optimization.
8585
[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully.
8686
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
@@ -96,7 +96,7 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
9696
---------------------------------------------------------------
9797
[INFO GPL-1001] Global placement finished at iteration 355
9898
[INFO GPL-1003] Routability mode iteration count: 64
99-
[INFO GPL-1005] Routability final weighted congestion: 0.4408
99+
[INFO GPL-1005] Routability final weighted congestion: 0.4360
100100
[INFO GPL-1002] Placed Cell Area 619.7347
101101
[INFO GPL-1003] Available Free Area 953.8760
102102
[INFO GPL-1004] Minimum Feasible Density 0.6500 (cell_area / free_area)

src/gpl/test/simple04-rd.ok

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
7777
[INFO GPL-0041] Total routing overflow: 0.0000
7878
[INFO GPL-0042] Number of overflowed tiles: 0 (0.00%)
7979
[INFO GPL-0043] Average top 0.5% routing congestion: 0.4737
80-
[INFO GPL-0044] Average top 1.0% routing congestion: 0.4729
81-
[INFO GPL-0045] Average top 2.0% routing congestion: 0.4659
82-
[INFO GPL-0046] Average top 5.0% routing congestion: 0.4496
83-
[INFO GPL-0047] Routability iteration weighted routing congestion: 0.4733
80+
[INFO GPL-0044] Average top 1.0% routing congestion: 0.4651
81+
[INFO GPL-0045] Average top 2.0% routing congestion: 0.4568
82+
[INFO GPL-0046] Average top 5.0% routing congestion: 0.4382
83+
[INFO GPL-0047] Routability iteration weighted routing congestion: 0.4694
8484
[INFO GPL-0050] Weighted routing congestion is lower than target routing congestion(0.6700), end routability optimization.
8585
[INFO GPL-0090] Routability finished. Target routing congestion achieved succesfully.
8686
Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
@@ -96,7 +96,7 @@ Iteration | Overflow | HPWL (um) | HPWL(%) | Penalty | Group
9696
---------------------------------------------------------------
9797
[INFO GPL-1001] Global placement finished at iteration 355
9898
[INFO GPL-1003] Routability mode iteration count: 64
99-
[INFO GPL-1005] Routability final weighted congestion: 0.4408
99+
[INFO GPL-1005] Routability final weighted congestion: 0.4360
100100
[INFO GPL-1002] Placed Cell Area 619.7347
101101
[INFO GPL-1003] Available Free Area 953.8760
102102
[INFO GPL-1004] Minimum Feasible Density 0.6500 (cell_area / free_area)

src/grt/include/grt/GlobalRouter.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,13 @@ class GlobalRouter
322322
std::vector<std::pair<int, int>> calcLayerPitches(int max_layer);
323323
void initRoutingTracks(int max_routing_layer);
324324
void setCapacities(int min_routing_layer, int max_routing_layer);
325+
int computeGCellCapacity(int x,
326+
int y,
327+
int track_init,
328+
int track_pitch,
329+
int track_count,
330+
bool horizontal);
331+
odb::Rect getGCellRect(int x, int y);
325332
void initNetlist(std::vector<Net*>& nets);
326333
void makeFastrouteNet(Net* net);
327334
bool pinPositionsChanged(Net* net);
@@ -332,11 +339,10 @@ class GlobalRouter
332339
std::map<int, std::vector<odb::Rect>>& layer_obs_map);
333340
void adjustTileSet(const TileSet& tiles_to_reduce,
334341
odb::dbTechLayer* tech_layer);
335-
void computeGridAdjustments(int min_routing_layer, int max_routing_layer);
336-
void computeTrackAdjustments(int min_routing_layer, int max_routing_layer);
337342
void computeUserGlobalAdjustments(int min_routing_layer,
338343
int max_routing_layer);
339-
void computeUserLayerAdjustments(int max_routing_layer);
344+
void computeUserLayerAdjustments(int min_routing_layer,
345+
int max_routing_layer);
340346
void computeRegionAdjustments(const odb::Rect& region,
341347
int layer,
342348
float reduction_percentage);
@@ -435,7 +441,6 @@ class GlobalRouter
435441

436442
// db functions
437443
void initGrid(int max_layer);
438-
void computeCapacities(int max_layer);
439444
void findTrackPitches(int max_layer);
440445
std::vector<Net*> findNets(bool init_clock_nets);
441446
void findClockNets(const std::vector<Net*>& nets,

0 commit comments

Comments
 (0)