File tree Expand file tree Collapse file tree 7 files changed +37
-31
lines changed Expand file tree Collapse file tree 7 files changed +37
-31
lines changed Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 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" : {
4444 "compare" : " <="
4545 },
4646 "detailedroute__antenna_diodes_count" : {
47- "value" : 6 ,
47+ "value" : 10 ,
4848 "compare" : " <="
4949 },
5050 "finish__timing__setup__ws" : {
Original file line number Diff line number Diff 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+
98102if { [env_var_equals REMOVE_ABC_BUFFERS 1] } {
99103 # remove buffers inserted by yosys/abc
100104 remove_buffers
Original file line number Diff line number Diff line change @@ -16,26 +16,6 @@ if { [env_var_exists_and_non_empty EARLY_SIZING_CAP_RATIO] } {
1616
1717repair_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
Original file line number Diff line number Diff 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+
1638proc fast_route { } {
1739 if { [env_var_exists_and_non_empty FASTROUTE_TCL] } {
1840 log_cmd source $::env(FASTROUTE_TCL)
Original file line number Diff line number Diff line change @@ -215,13 +215,13 @@ TIEHI_CELL_AND_PORT:
215215 Netlist.
216216 stages :
217217 - synth
218- - place
218+ - floorplan
219219TIELO_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
225225TIE_SEPARATION :
226226 description : |
227227 Distance separating tie high/low instances from the load.
You can’t perform that action at this time.
0 commit comments