Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/drt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ detailed_route
[-save_guide_updates]
[-repair_pdn_vias layer]
[-single_step_dr]
[-disable_auto_taper_ndr_nets]
```

#### Options
Expand Down Expand Up @@ -95,6 +96,7 @@ detailed_route
| `-no_pin_access` | Disables pin access for routing. |
| `-save_guide_updates` | Flag to save guides updates. |
| `-repair_pdn_vias` | This option is used for PDKs where M1 and M2 power rails run in parallel. |
| `-disable_auto_taper_ndr_nets` | Disables automatic tapering of NDR nets at pin connections. By default, tapering is enabled. |

#### Developer arguments

Expand Down
1 change: 1 addition & 0 deletions src/drt/include/drt/TritonRoute.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ struct ParamStruct
bool saveGuideUpdates = false;
std::string repairPDNLayerName;
int num_threads = 1;
bool autoTaperNdrNets = true;
};

class TritonRoute : public PinAccessService
Expand Down
1 change: 1 addition & 0 deletions src/drt/src/TritonRoute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,7 @@ void TritonRoute::setParams(const ParamStruct& params)
router_cfg_->SAVE_GUIDE_UPDATES = params.saveGuideUpdates;
router_cfg_->REPAIR_PDN_LAYER_NAME = params.repairPDNLayerName;
router_cfg_->MAX_THREADS = params.num_threads;
router_cfg_->AUTO_TAPER_NDR_NETS = params.autoTaperNdrNets;
}

void TritonRoute::addWorkerResults(
Expand Down
6 changes: 4 additions & 2 deletions src/drt/src/TritonRoute.i
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ void detailed_route_cmd(const char* outputMazeFile,
int minAccessPoints,
bool saveGuideUpdates,
const char* repairPDNLayerName,
int drcReportIterStep)
int drcReportIterStep,
bool autoTaperNdrNets)
{
auto* router = ord::OpenRoad::openRoad()->getTritonRoute();
const int num_threads = ord::OpenRoad::openRoad()->getThreadCount();
Expand All @@ -89,7 +90,8 @@ void detailed_route_cmd(const char* outputMazeFile,
minAccessPoints,
saveGuideUpdates,
repairPDNLayerName,
num_threads});
num_threads,
autoTaperNdrNets});
router->main();
router->setDistributed(false);
}
Expand Down
6 changes: 4 additions & 2 deletions src/drt/src/TritonRoute.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ sta::define_cmd_args "detailed_route" {
[-save_guide_updates]
[-repair_pdn_vias layer]
[-single_step_dr]
[-disable_auto_taper_ndr_nets]
}

proc detailed_route { args } {
Expand All @@ -38,7 +39,7 @@ proc detailed_route { args } {
-top_routing_layer -verbose -remote_host -remote_port -shared_volume \
-cloud_size -min_access_points -repair_pdn_vias -drc_report_iter_step} \
flags {-disable_via_gen -distributed -clean_patches -no_pin_access \
-single_step_dr -save_guide_updates}
-single_step_dr -save_guide_updates -disable_auto_taper_ndr_nets}
sta::check_argc_eq0 "detailed_route" $args

set enable_via_gen [expr ![info exists flags(-disable_via_gen)]]
Expand All @@ -48,6 +49,7 @@ proc detailed_route { args } {
# development. It is not listed in the help string intentionally.
set single_step_dr [expr [info exists flags(-single_step_dr)]]
set save_guide_updates [expr [info exists flags(-save_guide_updates)]]
set auto_taper_ndr_nets [expr ![info exists flags(-disable_auto_taper_ndr_nets)]]

if { [info exists keys(-repair_pdn_vias)] } {
set repair_pdn_vias $keys(-repair_pdn_vias)
Expand Down Expand Up @@ -166,7 +168,7 @@ proc detailed_route { args } {
$via_in_pin_bottom_layer $via_in_pin_top_layer \
$via_access_layer $or_seed $or_k $verbose \
$clean_patches $no_pin_access $single_step_dr $min_access_points \
$save_guide_updates $repair_pdn_vias $drc_report_iter_step
$save_guide_updates $repair_pdn_vias $drc_report_iter_step $auto_taper_ndr_nets
}

proc detailed_route_num_drvs { args } {
Expand Down