OpenLane icon indicating copy to clipboard operation
OpenLane copied to clipboard

PDN flow/script enhancement : There should be independent control on core ring and power Strip generation

Open dineshannayya opened this issue 2 years ago • 6 comments

Prompt

Current MPW-6 Openlane has common config to decide on number of core ring and power strip.

Issue: In MPW shuttle user project need have core-ring for all the 8 power (vccd1 vccd2 vdda1 vdda2 vssd1 vssd2 vssa1 vssa2), even though user project need one set of power domain (vccd1 vssd1). Default 8 power strips requirement make keep minimum 8 power-strip space between each hard macros. Highly congested SOC design will not have enough free space to support this.

Proposal

Given separate control

For Core Ring, use VDD_PINS/GND_PINS to decide on number of power in core ring For Power Strip, use VDD_NETS/GND_NETS to decide on number of power strip

dineshannayya avatar May 17 '22 03:05 dineshannayya

@arlpetergadfort FYI

maliberty avatar May 17 '22 15:05 maliberty

@donn OL should pick up the latest OR with Peter's fix and expose a set of flow controls. I believe this is done from an OR perspective.

maliberty avatar May 19 '22 15:05 maliberty

this would be great for me too, as I'm trying to get 450 small designs into the area and so I need a much finer PDN. With all 4 psus I can't manage it. With 1, it works but then precheck job fails.

mattvenn avatar May 20 '22 13:05 mattvenn

this would be great for me too, as I'm trying to get 450 small designs into the area and so I need a much finer PDN. With all 4 psus I can't manage it. With 1, it works but then precheck job fails.

I could confirm that with the latest OR there is an easy way to increase PDN density by disabling secondary supply stripes. All that is needed is to add options like these to add_stripes in pdn_cfg.tcl:

-spacing [expr {($::env(FP_PDN_VPITCH) / 2) - $::env(FP_PDN_VWIDTH)}] \
-nets [list $::env(VDD_NET) $::env(GND_NET)]

It would be even more convenient if OR recalculated spacing automatically. Together with setting FP_PDN_CORE_RING_VOFFSET & FP_PDN_CORE_RING_HOFFSET to 12.45 it allows you to pass XOR precheck with high PDN density.

I could provide a pull request with per supply control of stripes generation by OL variables if required.

egorxe avatar May 26 '22 11:05 egorxe

You should look at https://github.com/The-OpenROAD-Project/OpenLane/pull/1109

maliberty avatar May 26 '22 14:05 maliberty

You should look at #1109

#1109 is about power rings order and this issue is about separate control for rings and straps. They are related, but not the same.

egorxe avatar May 26 '22 16:05 egorxe

This is old ticket, PDN has this support now

dineshannayya avatar Nov 11 '22 09:11 dineshannayya