Skip to content

Commit f29444f

Browse files
committed
[untested] write only rails using hardcoded tcl for sky130_scl
1 parent ff7090c commit f29444f

File tree

1 file changed

+2
-50
lines changed

1 file changed

+2
-50
lines changed

hammer/technology/sky130/__init__.py

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ def get_tech_par_hooks(self, tool_name: str) -> List[HammerToolHookAction]:
789789
if self.get_setting("technology.sky130.stdcell_library") == "sky130_scl":
790790
hooks["innovus"].extend(
791791
[
792-
HammerTool.make_replacement_hook(
792+
HammerTool.make_pre_insertion_hook(
793793
"power_straps", power_rail_straps_no_tapcells
794794
),
795795
HammerTool.make_pre_insertion_hook(
@@ -1083,65 +1083,17 @@ def set_cts_base_cells(ht: HammerTool) -> bool:
10831083

10841084
# TODO: this should just be placign rail straps, so higher straps are placed by non-hardocded tcl
10851085
def power_rail_straps_no_tapcells(ht: HammerTool) -> bool:
1086+
assert not ht.get_setting("par.generate_power_straps_options.by_tracks.generate_rail_layer"), "rails must be placed by this hook for sky130_scl!"
10861087
# We do this since there are no explicit tapcells in sky130_scl
10871088
# just need the rail ones, others are placed as usual.
10881089
ht.append(
10891090
"""
1090-
# --------------------------------------------------------------------------------
1091-
# This script was written and developed by HAMMER at UC Berkeley; however, the
1092-
# underlying commands and reports are copyrighted by Cadence. We thank Cadence for
1093-
# granting permission to share our research to help promote and foster the next
1094-
# generation of innovators.
1095-
# --------------------------------------------------------------------------------
1096-
10971091
# Power strap definition for layer met1 (rails):
1098-
10991092
# should be .14
11001093
set_db add_stripes_stacked_via_top_layer met1
11011094
set_db add_stripes_stacked_via_bottom_layer met1
11021095
set_db add_stripes_spacing_from_block 4.000
1103-
#add_stripes -over_physical_pins 1 -nets {VDD VSS} -width .14 -direction horizontal -pin_layer met1 -layer met1
1104-
#add_stripes -layer met1 -over_pins 1 -number_of_sets 1 -spacing 3.74 -direction horizontal -width .4 -nets { VSS VDD } -number_of_sets 1
1105-
#add_stripes -pin_layer met1 -layer met1 -over_pins 1 -spacing .2 -direction horizontal -width .4 -nets { VSS VDD }
1106-
#add_stripes -master "FILL*" -over_pins 1 -block_ring_bottom_layer_limit met1 -block_ring_top_layer_limit met1 -direction horizontal -layer met1 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met1 -width pin_width
1107-
#add_stripes -nets {VDD VSS} -layer met1 -direction horizontal -width .4 -spacing 4.54 -set_to_set_distance 9.08 -start_from bottom -pin_offset -2.46
1108-
#add_stripes -nets {VDD VSS} -layer met1 -direction horizontal -width .4 -spacing 3.74 -number_of_sets 1 -start_from left -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit met5 -pad_core_ring_bottom_layer_limit met1 -block_ring_top_layer_limit met5 -block_ring_bottom_layer_limit met1 -use_wire_group 0 -snap_wire_center_to_grid none
11091096
add_stripes -nets {VDD VSS} -layer met1 -direction horizontal -start_offset -.2 -width .4 -spacing 3.74 -set_to_set_distance 8.28 -start_from bottom -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit met5 -pad_core_ring_bottom_layer_limit met1 -block_ring_top_layer_limit met5 -block_ring_bottom_layer_limit met1 -use_wire_group 0 -snap_wire_center_to_grid none
1110-
1111-
# Power strap definition for layer met2:
1112-
1113-
#set_db add_stripes_stacked_via_top_layer met2
1114-
#set_db add_stripes_stacked_via_bottom_layer met1
1115-
#set_db add_stripes_trim_antenna_back_to_shape {stripe}
1116-
##set_db add_stripes_spacing_from_block 4.000
1117-
##add_stripes -create_pins 0 -block_ring_bottom_layer_limit met2 -block_ring_top_layer_limit met1 -direction vertical -layer met2 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met1 -set_to_set_distance 101.20 -spacing 2.26 -switch_layer_over_obs 0 -width 1.42 -area [get_db designs .core_bbox] -start [expr [lindex [lindex [get_db designs .core_bbox] 0] 0] + 4.81]
1118-
#add_stripes -nets {VDD VSS} -layer met2 -direction vertical -width .2 -spacing 0.14 -number_of_sets 1 -extend_to all_domains -start_from left -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit met5 -pad_core_ring_bottom_layer_limit met1 -block_ring_top_layer_limit met5 -block_ring_bottom_layer_limit met1 -use_wire_group 0 -snap_wire_center_to_grid none
1119-
1120-
## Power strap definition for layer met3:
1121-
1122-
#set_db add_stripes_stacked_via_top_layer met3
1123-
#set_db add_stripes_stacked_via_bottom_layer met2
1124-
#set_db add_stripes_trim_antenna_back_to_shape {stripe}
1125-
#set_db add_stripes_spacing_from_block 2.000
1126-
#add_stripes -create_pins 0 -block_ring_bottom_layer_limit met3 -block_ring_top_layer_limit met2 -direction horizontal -layer met3 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met2 -set_to_set_distance 75.90 -spacing 3.66 -switch_layer_over_obs 0 -width 1.86 -area [get_db designs .core_bbox] -start [expr [lindex [lindex [get_db designs .core_bbox] 0] 1] + 7.35]
1127-
1128-
# Power strap definition for layer met4:
1129-
1130-
set_db add_stripes_stacked_via_top_layer met4
1131-
set_db add_stripes_stacked_via_bottom_layer met1
1132-
set_db add_stripes_trim_antenna_back_to_shape {stripe}
1133-
set_db add_stripes_spacing_from_block 2.000
1134-
#add_stripes -create_pins 0 -block_ring_bottom_layer_limit met4 -block_ring_top_layer_limit met3 -direction vertical -layer met4 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met3 -set_to_set_distance 75.90 -spacing 3.66 -switch_layer_over_obs 0 -width 1.86 -area [get_db designs .core_bbox] -start [expr [lindex [lindex [get_db designs .core_bbox] 0] 0] + 7.35]
1135-
add_stripes -create_pins 0 -block_ring_bottom_layer_limit met4 -block_ring_top_layer_limit met1 -direction vertical -layer met4 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met1 -set_to_set_distance 75.90 -spacing 3.66 -switch_layer_over_obs 0 -width 1.86 -area [get_db designs .core_bbox] -start [expr [lindex [lindex [get_db designs .core_bbox] 0] 0] + 7.35]
1136-
1137-
# Power strap definition for layer met5:
1138-
1139-
set_db add_stripes_stacked_via_top_layer met5
1140-
set_db add_stripes_stacked_via_bottom_layer met4
1141-
set_db add_stripes_trim_antenna_back_to_shape {stripe}
1142-
set_db add_stripes_spacing_from_block 2.000
1143-
add_stripes -create_pins 1 -block_ring_bottom_layer_limit met5 -block_ring_top_layer_limit met4 -direction horizontal -layer met5 -nets {VSS VDD} -pad_core_ring_bottom_layer_limit met4 -set_to_set_distance 225.40 -spacing 17.68 -switch_layer_over_obs 0 -width 1.64 -area [get_db designs .core_bbox] -start [expr [lindex [lindex [get_db designs .core_bbox] 0] 1] + 5.62]
1144-
11451097
"""
11461098
)
11471099
return True

0 commit comments

Comments
 (0)