Skip to content

Commit 13839d9

Browse files
authored
Merge pull request #7909 from eder-matheus/drt_layer_range
drt: use odb layer range instead of own options to define layers
2 parents d6d2d55 + 7f693eb commit 13839d9

23 files changed

+61
-86
lines changed

src/drt/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ detailed_route
8585
| `-min_access_points` | Refer to pin access arguments [here](#pin-access-arguments). |
8686
| `-or_seed` | Refer to developer arguments [here](#developer-arguments). |
8787
| `-or_k` | Refer to developer arguments [here](#developer-arguments). |
88-
| `-bottom_routing_layer` | Bottommost routing layer name. |
89-
| `-top_routing_layer` | Topmost routing layer name. |
88+
| `-bottom_routing_layer` | Deprecated. Use the `set_routing_layers` command instead. |
89+
| `-top_routing_layer` | Deprecated. Use the `set_routing_layers` command instead. |
9090
| `-verbose` | Sets verbose mode if the value is greater than 1, else non-verbose mode (must be integer, or error will be triggered.) |
9191
| `-distributed` | Refer to distributed arguments [here](#distributed-arguments). |
9292
| `-remote_host` | Refer to distributed arguments [here](#distributed-arguments). |
@@ -179,8 +179,8 @@ pin_access
179179
| Switch Name | Description |
180180
| ----- | ----- |
181181
| `-db_process_node` | Specify process node. |
182-
| `-bottom_routing_layer` | Bottommost routing layer. |
183-
| `-top_routing_layer` | Topmost routing layer name. |
182+
| `-bottom_routing_layer` | Deprecated. Use the `set_routing_layers` command instead. |
183+
| `-top_routing_layer` | Deprecated. Use the `set_routing_layers` command instead. |
184184
| `-via_access_layer` | Refer to pin access arguments [here](#pin-access-arguments). |
185185
| `-via_in_pin_bottom_layer` | Refer to pin access arguments [here](#pin-access-arguments). |
186186
| `-via_in_pin_top_layer` | Refer to pin access arguments [here](#pin-access-arguments). |

src/drt/include/triton_route/TritonRoute.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ struct ParamStruct
6767
std::string viaAccessLayer;
6868
int orSeed = 0;
6969
double orK = 0;
70-
std::string bottomRoutingLayer;
71-
std::string topRoutingLayer;
7270
int verbose = 1;
7371
bool cleanPatches = false;
7472
bool doPa = false;

src/drt/src/TritonRoute.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,12 +1275,6 @@ void TritonRoute::setParams(const ParamStruct& params)
12751275
}
12761276
router_cfg_->OR_SEED = params.orSeed;
12771277
router_cfg_->OR_K = params.orK;
1278-
if (!params.bottomRoutingLayer.empty()) {
1279-
router_cfg_->BOTTOM_ROUTING_LAYER_NAME = params.bottomRoutingLayer;
1280-
}
1281-
if (!params.topRoutingLayer.empty()) {
1282-
router_cfg_->TOP_ROUTING_LAYER_NAME = params.topRoutingLayer;
1283-
}
12841278
if (params.minAccessPoints > 0) {
12851279
router_cfg_->MINNUMACCESSPOINT_STDCELLPIN = params.minAccessPoints;
12861280
router_cfg_->MINNUMACCESSPOINT_MACROCELLPIN = params.minAccessPoints;

src/drt/src/TritonRoute.i

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ void detailed_route_cmd(const char* outputMazeFile,
6060
const char* viaAccessLayer,
6161
int orSeed,
6262
double orK,
63-
const char* bottomRoutingLayer,
64-
const char* topRoutingLayer,
6563
int verbose,
6664
bool cleanPatches,
6765
bool noPa,
@@ -90,8 +88,6 @@ void detailed_route_cmd(const char* outputMazeFile,
9088
viaAccessLayer,
9189
orSeed,
9290
orK,
93-
bottomRoutingLayer,
94-
topRoutingLayer,
9591
verbose,
9692
cleanPatches,
9793
!noPa,
@@ -105,8 +101,6 @@ void detailed_route_cmd(const char* outputMazeFile,
105101
}
106102

107103
void pin_access_cmd(const char* dbProcessNode,
108-
const char* bottomRoutingLayer,
109-
const char* topRoutingLayer,
110104
const char* viaAccessLayer,
111105
int verbose,
112106
int minAccessPoints,
@@ -116,8 +110,6 @@ void pin_access_cmd(const char* dbProcessNode,
116110
auto* router = ord::OpenRoad::openRoad()->getTritonRoute();
117111
drt::ParamStruct params;
118112
params.dbProcessNode = dbProcessNode;
119-
params.bottomRoutingLayer = bottomRoutingLayer;
120-
params.topRoutingLayer = topRoutingLayer;
121113
params.verbose = verbose;
122114
params.viaAccessLayer = viaAccessLayer;
123115
params.minAccessPoints = minAccessPoints;

src/drt/src/TritonRoute.tcl

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -122,14 +122,12 @@ proc detailed_route { args } {
122122
set or_k 0
123123
}
124124
if { [info exists keys(-bottom_routing_layer)] } {
125-
set bottom_routing_layer $keys(-bottom_routing_layer)
126-
} else {
127-
set bottom_routing_layer ""
125+
utl::warn DRT 509 "-bottom_routing_layer is deprecated.\
126+
Use set_routing_layers command instead."
128127
}
129128
if { [info exists keys(-top_routing_layer)] } {
130-
set top_routing_layer $keys(-top_routing_layer)
131-
} else {
132-
set top_routing_layer ""
129+
utl::warn DRT 510 "-top_routing_layer is deprecated.\
130+
Use set_routing_layers command instead."
133131
}
134132
if { [info exists keys(-verbose)] } {
135133
sta::check_positive_integer "-verbose" $keys(-verbose)
@@ -169,7 +167,7 @@ proc detailed_route { args } {
169167
drt::detailed_route_cmd $output_maze $output_drc $output_cmap \
170168
$output_guide_coverage $db_process_node $enable_via_gen $droute_end_iter \
171169
$via_in_pin_bottom_layer $via_in_pin_top_layer \
172-
$via_access_layer $or_seed $or_k $bottom_routing_layer $top_routing_layer $verbose \
170+
$via_access_layer $or_seed $or_k $verbose \
173171
$clean_patches $no_pin_access $single_step_dr $min_access_points \
174172
$save_guide_updates $repair_pdn_vias $drc_report_iter_step
175173
}
@@ -296,14 +294,12 @@ proc pin_access { args } {
296294
set db_process_node ""
297295
}
298296
if { [info exists keys(-bottom_routing_layer)] } {
299-
set bottom_routing_layer $keys(-bottom_routing_layer)
300-
} else {
301-
set bottom_routing_layer ""
297+
utl::warn DRT 511 "-bottom_routing_layer is deprecated.\
298+
Use set_routing_layers command instead."
302299
}
303300
if { [info exists keys(-top_routing_layer)] } {
304-
set top_routing_layer $keys(-top_routing_layer)
305-
} else {
306-
set top_routing_layer ""
301+
utl::warn DRT 514 "-top_routing_layer is deprecated.\
302+
Use set_routing_layers command instead."
307303
}
308304
if { [info exists keys(-via_access_layer)] } {
309305
set via_access_layer $keys(-via_access_layer)
@@ -355,8 +351,8 @@ proc pin_access { args } {
355351
}
356352
drt::detailed_route_distributed $rhost $rport $vol $cloudsz
357353
}
358-
drt::pin_access_cmd $db_process_node $bottom_routing_layer \
359-
$top_routing_layer $via_access_layer $verbose $min_access_points \
354+
drt::pin_access_cmd $db_process_node \
355+
$via_access_layer $verbose $min_access_points \
360356
$via_in_pin_bottom_layer $via_in_pin_top_layer
361357
}
362358

src/drt/src/global.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ struct RouterConfiguration
3939
int MTSAFEDIST = 2000;
4040
int DRCSAFEDIST = 500;
4141
int VERBOSE = 1;
42-
std::string BOTTOM_ROUTING_LAYER_NAME;
43-
std::string TOP_ROUTING_LAYER_NAME;
4442
int BOTTOM_ROUTING_LAYER = 2;
4543
int TOP_ROUTING_LAYER = std::numeric_limits<int>::max();
4644
bool ALLOW_PIN_AS_FEEDTHROUGH = true;

src/drt/src/io/io.cpp

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3029,7 +3029,8 @@ void io::Parser::readTechAndLibs(odb::dbDatabase* db)
30293029
}
30303030

30313031
auto tech = db->getTech();
3032-
if (tech == nullptr) {
3032+
auto block = db_->getChip()->getBlock();
3033+
if (tech == nullptr || block == nullptr) {
30333034
logger_->error(DRT, 136, "Load design first.");
30343035
}
30353036
getTech()->setDBUPerUU(tech->getDbUnitsPerMicron());
@@ -3039,27 +3040,32 @@ void io::Parser::readTechAndLibs(odb::dbDatabase* db)
30393040
setLayers(tech);
30403041

30413042
auto fr_tech = getTech();
3042-
if (!router_cfg_->BOTTOM_ROUTING_LAYER_NAME.empty()) {
3043-
frLayer* layer = fr_tech->getLayer(router_cfg_->BOTTOM_ROUTING_LAYER_NAME);
3043+
3044+
const int min_routing_layer = block->getMinRoutingLayer();
3045+
if (min_routing_layer > 0) {
3046+
odb::dbTechLayer* tech_layer = tech->findRoutingLayer(min_routing_layer);
3047+
frLayer* layer = fr_tech->getLayer(tech_layer->getName());
30443048
if (layer) {
30453049
router_cfg_->BOTTOM_ROUTING_LAYER = layer->getLayerNum();
30463050
} else {
30473051
logger_->warn(utl::DRT,
30483052
272,
30493053
"bottomRoutingLayer {} not found.",
3050-
router_cfg_->BOTTOM_ROUTING_LAYER_NAME);
3054+
tech_layer->getName());
30513055
}
30523056
}
30533057

3054-
if (!router_cfg_->TOP_ROUTING_LAYER_NAME.empty()) {
3055-
frLayer* layer = fr_tech->getLayer(router_cfg_->TOP_ROUTING_LAYER_NAME);
3058+
const int max_routing_layer = block->getMaxRoutingLayer();
3059+
if (max_routing_layer > 0) {
3060+
odb::dbTechLayer* tech_layer = tech->findRoutingLayer(max_routing_layer);
3061+
frLayer* layer = fr_tech->getLayer(tech_layer->getName());
30563062
if (layer) {
30573063
router_cfg_->TOP_ROUTING_LAYER = layer->getLayerNum();
30583064
} else {
30593065
logger_->warn(utl::DRT,
30603066
273,
30613067
"topRoutingLayer {} not found.",
3062-
router_cfg_->TOP_ROUTING_LAYER_NAME);
3068+
tech_layer->getName());
30633069
}
30643070
} else {
30653071
for (frLayerNum layer_num = fr_tech->getTopLayerNum();
@@ -3929,8 +3935,9 @@ Point io::TopLayerBTermHandler::getBestViaPosition(Rect pin_rect)
39293935
int io::TopLayerBTermHandler::countNetBTermsAboveMaxLayer(odb::dbNet* net)
39303936
{
39313937
odb::dbTech* tech = db_->getTech();
3932-
odb::dbTechLayer* top_tech_layer
3933-
= tech->findLayer(router_cfg_->TOP_ROUTING_LAYER_NAME.c_str());
3938+
odb::dbBlock* block = db_->getChip()->getBlock();
3939+
const int max_routing_layer = block->getMaxRoutingLayer();
3940+
odb::dbTechLayer* top_tech_layer = tech->findRoutingLayer(max_routing_layer);
39343941
int bterm_count = 0;
39353942
for (auto bterm : net->getBTerms()) {
39363943
int bterm_bottom_layer_idx = std::numeric_limits<int>::max();
@@ -4046,14 +4053,14 @@ void io::TopLayerBTermHandler::stackVias(odb::dbBTerm* bterm,
40464053

40474054
void io::TopLayerBTermHandler::processBTermsAboveTopLayer(bool has_routing)
40484055
{
4049-
if (router_cfg_->TOP_ROUTING_LAYER_NAME.empty()) {
4056+
odb::dbBlock* block = db_->getChip()->getBlock();
4057+
const int max_routing_layer = block->getMaxRoutingLayer();
4058+
if (max_routing_layer < 0) {
40504059
return;
40514060
}
40524061
odb::dbTech* tech = db_->getTech();
4053-
odb::dbBlock* block = db_->getChip()->getBlock();
40544062

4055-
odb::dbTechLayer* top_tech_layer
4056-
= tech->findLayer(router_cfg_->TOP_ROUTING_LAYER_NAME.c_str());
4063+
odb::dbTechLayer* top_tech_layer = tech->findRoutingLayer(max_routing_layer);
40574064
if (top_tech_layer != nullptr) {
40584065
int top_layer_idx = top_tech_layer->getRoutingLevel();
40594066
for (auto bterm : block->getBTerms()) {

src/drt/src/serialization.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -751,8 +751,6 @@ void serializeGlobals(Archive& ar, RouterConfiguration* router_cfg)
751751
(ar) & router_cfg->MTSAFEDIST;
752752
(ar) & router_cfg->DRCSAFEDIST;
753753
(ar) & router_cfg->VERBOSE;
754-
(ar) & router_cfg->BOTTOM_ROUTING_LAYER_NAME;
755-
(ar) & router_cfg->TOP_ROUTING_LAYER_NAME;
756754
(ar) & router_cfg->BOTTOM_ROUTING_LAYER;
757755
(ar) & router_cfg->TOP_ROUTING_LAYER;
758756
(ar) & router_cfg->ALLOW_PIN_AS_FEEDTHROUGH;

src/drt/test/drt_aux.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ def detailed_route(
4747
params.viaInPinTopLayer = via_in_pin_top_layer
4848
params.orSeed = or_seed
4949
params.orK = or_k
50-
params.bottomRoutingLayer = bottom_routing_layer
51-
params.topRoutingLayer = top_routing_layer
5250
params.verbose = verbose
5351
params.cleanPatches = clean_patches
5452
params.doPa = not no_pin_access

src/drt/test/ndr_vias1.tcl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ assign_ndr -ndr NDR_3W_3S -net clknet_2_1__leaf_clk
1818
assign_ndr -ndr NDR_3W_3S -net clknet_2_2__leaf_clk
1919
assign_ndr -ndr NDR_3W_3S -net clknet_2_3__leaf_clk
2020

21-
detailed_route -bottom_routing_layer met1 -top_routing_layer met5 -verbose 0
21+
set_routing_layers -signal met1-met5
22+
detailed_route -verbose 0
2223

2324
write_def $def_file
2425
diff_files ndr_vias1.defok $def_file

0 commit comments

Comments
 (0)