remake macro placement each time, try different power placement
diff --git a/ol_templates/Makefile b/ol_templates/Makefile index af2079f..4e58532 100644 --- a/ol_templates/Makefile +++ b/ol_templates/Makefile
@@ -16,6 +16,12 @@ +.PHONY: help +help: + @echo " available commands (do 'make <command>')" + @echo + @awk '/^.PHONY/{print " " $$2}' Makefile + .PHONY: init_block_flat init_block_flat: @echo @@ -40,23 +46,14 @@ cp config_block2.tcl ../openlane/user_proj_example/config.tcl cp pdn.tcl ../openlane/user_proj_example/pdn.tcl cp pin_order.cfg ../openlane/user_proj_example/pin_order.cfg - cp macro_placement.cfg ../openlane/user_proj_example/macro_placement.cfg - -.PHONY: help -help: - @echo " available commands (do 'make <command>')" - @echo - @awk '/^.PHONY/{print " " $$2}' Makefile - -.PHONY: init_placement_cfg -init_placement_cfg: @echo @echo " creating new macro_placement.cfg file" @echo - @echo -n >macro_placement.cfg + @echo -n >../openlane/user_proj_example/macro_placement.cfg @for r in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do \ for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do \ - echo "blk.column\["$$c"\].row\["$$r"\].yc "$$(printf %.3f $$((40480+80960*(15-$$c)))e-3)" "$$(printf %.3f $$((86400+86400*(15-$$r)))e-3)" N" >> macro_placement.cfg; \ + echo "blk.column\["$$c"\].row\["$$r"\].yc "$$(printf %.3f $$((40480+80960*(15-$$c)))e-3)" "$$(printf %.3f $$((86400+86400*(15-$$r)))e-3)" N" >> ../openlane/user_proj_example/macro_placement.cfg; \ done \ done +
diff --git a/ol_templates/pdn.tcl b/ol_templates/pdn.tcl index f6d953c..9c6a94a 100644 --- a/ol_templates/pdn.tcl +++ b/ol_templates/pdn.tcl
@@ -1,47 +1,34 @@ # Power nets -set ::power_nets $::env(_VDD_NET_NAME) -set ::ground_nets $::env(_GND_NET_NAME) +set ::power_nets $::env(VDD_PIN) +set ::ground_nets $::env(GND_PIN) + +set ::macro_blockage_layer_list "li1 met1 met2 met3 met4 met5" pdngen::specify_grid stdcell { name grid - core_ring { - met5 {width $::env(_WIDTH) spacing $::env(_SPACING) core_offset $::env(_H_OFFSET)} - met4 {width $::env(_WIDTH) spacing $::env(_SPACING) core_offset $::env(_V_OFFSET)} - } - rails { - } - straps { - met4 {width $::env(_WIDTH) pitch $::env(_V_PITCH) offset $::env(_V_PDN_OFFSET)} - met5 {width $::env(_WIDTH) pitch $::env(_H_PITCH) offset $::env(_H_PDN_OFFSET)} + rails { + met1 {width 0.48 pitch $::env(PLACE_SITE_HEIGHT) offset 0} } - connect {{met4 met5}} + straps { + met4 {width 1.6 pitch $::env(FP_PDN_VPITCH) offset $::env(FP_PDN_VOFFSET)} + met5 {width 1.6 pitch $::env(FP_PDN_HPITCH) offset $::env(FP_PDN_HOFFSET)} + } + connect {{met1 met4} {met4 met5}} } pdngen::specify_grid macro { - instance "obs_core_obs" - power_pins $::env(_VDD_NET_NAME) - ground_pins $::env(_GND_NET_NAME) - blockages "li1 met1 met2 met3 met4 met5" + power_pins "VPWR" + ground_pins "VGND" + blockages "li1 met1 met2 met3 met4" straps { } - connect {} + connect {{met4_PIN_ver met5}} } - -pdngen::specify_grid macro { - power_pins $::env(_VDD_NET_NAME) - ground_pins $::env(_GND_NET_NAME) - blockages "" - straps { - } - connect {} -} - -set ::halo 0 +set ::halo 5 # POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area set ::rails_start_with "POWER" ; # POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area set ::stripes_start_with "POWER" ; -