Skip to content

Commit e481ac7

Browse files
authored
Merge pull request #3254 from The-OpenROAD-Project-staging/secure-mv-repair_tie-to-floorplan
Move repair_tie_fanout to floorplan.tcl
2 parents 78651c2 + 157c3a1 commit e481ac7

File tree

7 files changed

+37
-31
lines changed

7 files changed

+37
-31
lines changed

docs/user/FlowVariables.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,8 @@ configuration file.
323323
- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP)
324324
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
325325
- [TAPCELL_TCL](#TAPCELL_TCL)
326+
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)
327+
- [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT)
326328
- [TNS_END_PERCENT](#TNS_END_PERCENT)
327329

328330
## place variables
@@ -344,8 +346,6 @@ configuration file.
344346
- [PLACE_PINS_ARGS](#PLACE_PINS_ARGS)
345347
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
346348
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
347-
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)
348-
- [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT)
349349
- [TIE_SEPARATION](#TIE_SEPARATION)
350350

351351
## cts variables

flow/designs/gf180/jpeg/rules-base.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,31 @@
88
"compare": "=="
99
},
1010
"placeopt__design__instance__area": {
11-
"value": 2366631,
11+
"value": 2362986,
1212
"compare": "<="
1313
},
1414
"placeopt__design__instance__count__stdcell": {
15-
"value": 53829,
15+
"value": 53818,
1616
"compare": "<="
1717
},
1818
"detailedplace__design__violations": {
1919
"value": 0,
2020
"compare": "=="
2121
},
2222
"cts__design__instance__count__setup_buffer": {
23-
"value": 4681,
23+
"value": 4680,
2424
"compare": "<="
2525
},
2626
"cts__design__instance__count__hold_buffer": {
27-
"value": 4681,
27+
"value": 4680,
2828
"compare": "<="
2929
},
3030
"globalroute__antenna_diodes_count": {
3131
"value": 0,
3232
"compare": "<="
3333
},
3434
"detailedroute__route__wirelength": {
35-
"value": 2985307,
35+
"value": 2973166,
3636
"compare": "<="
3737
},
3838
"detailedroute__route__drc_errors": {
@@ -44,7 +44,7 @@
4444
"compare": "<="
4545
},
4646
"detailedroute__antenna_diodes_count": {
47-
"value": 6,
47+
"value": 10,
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {

flow/scripts/floorplan.tcl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ if { [env_var_exists_and_non_empty FOOTPRINT_TCL] } {
9595
log_cmd source $::env(FOOTPRINT_TCL)
9696
}
9797

98+
# This needs to come before any call to remove_buffers. You could have one
99+
# tie driving multiple buffers that drive multiple outputs.
100+
repair_tie_fanout_helper
101+
98102
if { [env_var_equals REMOVE_ABC_BUFFERS 1] } {
99103
# remove buffers inserted by yosys/abc
100104
remove_buffers

flow/scripts/resize.tcl

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,6 @@ if { [env_var_exists_and_non_empty EARLY_SIZING_CAP_RATIO] } {
1616

1717
repair_design_helper
1818

19-
if { [env_var_exists_and_non_empty TIE_SEPARATION] } {
20-
set tie_separation $env(TIE_SEPARATION)
21-
} else {
22-
set tie_separation 0
23-
}
24-
25-
# Repair tie lo fanout
26-
puts "Repair tie lo fanout..."
27-
set tielo_cell_name [lindex $env(TIELO_CELL_AND_PORT) 0]
28-
set tielo_lib_name [get_name [get_property [lindex [get_lib_cell $tielo_cell_name] 0] library]]
29-
set tielo_pin $tielo_lib_name/$tielo_cell_name/[lindex $env(TIELO_CELL_AND_PORT) 1]
30-
repair_tie_fanout -separation $tie_separation $tielo_pin
31-
32-
# Repair tie hi fanout
33-
puts "Repair tie hi fanout..."
34-
set tiehi_cell_name [lindex $env(TIEHI_CELL_AND_PORT) 0]
35-
set tiehi_lib_name [get_name [get_property [lindex [get_lib_cell $tiehi_cell_name] 0] library]]
36-
set tiehi_pin $tiehi_lib_name/$tiehi_cell_name/[lindex $env(TIEHI_CELL_AND_PORT) 1]
37-
repair_tie_fanout -separation $tie_separation $tiehi_pin
38-
3919
# hold violations are not repaired until after CTS
4020

4121
# post report

flow/scripts/util.tcl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,28 @@ proc log_cmd { cmd args } {
1313
return $result
1414
}
1515

16+
proc repair_tie_fanout_helper {} {
17+
if { [env_var_exists_and_non_empty TIE_SEPARATION] } {
18+
set tie_separation $env(TIE_SEPARATION)
19+
} else {
20+
set tie_separation 0
21+
}
22+
23+
# Repair tie lo fanout
24+
puts "Repair tie lo fanout..."
25+
set tielo_cell_name [lindex $::env(TIELO_CELL_AND_PORT) 0]
26+
set tielo_lib_name [get_name [get_property [lindex [get_lib_cell $tielo_cell_name] 0] library]]
27+
set tielo_pin $tielo_lib_name/$tielo_cell_name/[lindex $::env(TIELO_CELL_AND_PORT) 1]
28+
repair_tie_fanout -separation $tie_separation $tielo_pin
29+
30+
# Repair tie hi fanout
31+
puts "Repair tie hi fanout..."
32+
set tiehi_cell_name [lindex $::env(TIEHI_CELL_AND_PORT) 0]
33+
set tiehi_lib_name [get_name [get_property [lindex [get_lib_cell $tiehi_cell_name] 0] library]]
34+
set tiehi_pin $tiehi_lib_name/$tiehi_cell_name/[lindex $::env(TIEHI_CELL_AND_PORT) 1]
35+
repair_tie_fanout -separation $tie_separation $tiehi_pin
36+
}
37+
1638
proc fast_route { } {
1739
if { [env_var_exists_and_non_empty FASTROUTE_TCL] } {
1840
log_cmd source $::env(FASTROUTE_TCL)

flow/scripts/variables.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,13 @@ TIEHI_CELL_AND_PORT:
215215
Netlist.
216216
stages:
217217
- synth
218-
- place
218+
- floorplan
219219
TIELO_CELL_AND_PORT:
220220
description: |
221221
Tie low cells used in Yosys synthesis to replace a logical 0 in the Netlist.
222222
stages:
223223
- synth
224-
- place
224+
- floorplan
225225
TIE_SEPARATION:
226226
description: |
227227
Distance separating tie high/low instances from the load.

0 commit comments

Comments
 (0)