File tree Expand file tree Collapse file tree 5 files changed +30
-24
lines changed Expand file tree Collapse file tree 5 files changed +30
-24
lines changed Original file line number Diff line number Diff line change @@ -320,6 +320,8 @@ configuration file.
320320- [ SKIP_PIN_SWAP] ( #SKIP_PIN_SWAP )
321321- [ SKIP_REPORT_METRICS] ( #SKIP_REPORT_METRICS )
322322- [ TAPCELL_TCL] ( #TAPCELL_TCL )
323+ - [ TIEHI_CELL_AND_PORT] ( #TIEHI_CELL_AND_PORT )
324+ - [ TIELO_CELL_AND_PORT] ( #TIELO_CELL_AND_PORT )
323325- [ TNS_END_PERCENT] ( #TNS_END_PERCENT )
324326
325327## place variables
@@ -340,8 +342,6 @@ configuration file.
340342- [ PLACE_PINS_ARGS] ( #PLACE_PINS_ARGS )
341343- [ ROUTING_LAYER_ADJUSTMENT] ( #ROUTING_LAYER_ADJUSTMENT )
342344- [ SKIP_REPORT_METRICS] ( #SKIP_REPORT_METRICS )
343- - [ TIEHI_CELL_AND_PORT] ( #TIEHI_CELL_AND_PORT )
344- - [ TIELO_CELL_AND_PORT] ( #TIELO_CELL_AND_PORT )
345345
346346## cts variables
347347
Original file line number Diff line number Diff line change @@ -103,6 +103,10 @@ if {[env_var_exists_and_non_empty FOOTPRINT_TCL]} {
103103 log_cmd source $::env(FOOTPRINT_TCL)
104104}
105105
106+ # This needs to come before any call to remove_buffers. You could have one
107+ # tie driving multiple buffers that drive multiple outputs.
108+ repair_tie_fanout_helper
109+
106110if { [env_var_equals REMOVE_ABC_BUFFERS 1] } {
107111 # remove buffers inserted by yosys/abc
108112 remove_buffers
Original file line number Diff line number Diff line change @@ -12,26 +12,6 @@ set_dont_use $::env(DONT_USE_CELLS)
1212
1313repair_design_helper
1414
15- if { [env_var_exists_and_non_empty TIE_SEPARATION] } {
16- set tie_separation $env(TIE_SEPARATION)
17- } else {
18- set tie_separation 0
19- }
20-
21- # Repair tie lo fanout
22- puts " Repair tie lo fanout..."
23- set tielo_cell_name [lindex $env(TIELO_CELL_AND_PORT) 0]
24- set tielo_lib_name [get_name [get_property [lindex [get_lib_cell $tielo_cell_name ] 0] library]]
25- set tielo_pin $tielo_lib_name /$tielo_cell_name /[lindex $env(TIELO_CELL_AND_PORT) 1]
26- repair_tie_fanout -separation $tie_separation $tielo_pin
27-
28- # Repair tie hi fanout
29- puts " Repair tie hi fanout..."
30- set tiehi_cell_name [lindex $env(TIEHI_CELL_AND_PORT) 0]
31- set tiehi_lib_name [get_name [get_property [lindex [get_lib_cell $tiehi_cell_name ] 0] library]]
32- set tiehi_pin $tiehi_lib_name /$tiehi_cell_name /[lindex $env(TIEHI_CELL_AND_PORT) 1]
33- repair_tie_fanout -separation $tie_separation $tiehi_pin
34-
3515# hold violations are not repaired until after CTS
3616
3717# 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 @@ -214,13 +214,13 @@ TIEHI_CELL_AND_PORT:
214214 Netlist.
215215 stages :
216216 - synth
217- - place
217+ - floorplan
218218TIELO_CELL_AND_PORT :
219219 description : |
220220 Tie low cells used in Yosys synthesis to replace a logical 0 in the Netlist.
221221 stages :
222222 - synth
223- - place
223+ - floorplan
224224MIN_BUF_CELL_AND_PORTS :
225225 description : |
226226 Used to insert a buffer cell to pass through wires. Used in synthesis.
You can’t perform that action at this time.
0 commit comments