|
| 1 | +# Top level PDN for macros using BLOCK_grid_strategy.tcl |
| 2 | + |
| 3 | +#################################### |
| 4 | +# global connections |
| 5 | +#################################### |
| 6 | +add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDD$} -power |
| 7 | +add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSS$} -ground |
| 8 | + |
| 9 | +#################################### |
| 10 | +# voltage domains |
| 11 | +#################################### |
| 12 | +set_voltage_domain -name {CORE} -power {VDD} -ground {VSS} |
| 13 | + |
| 14 | +#################################### |
| 15 | +# standard cell grid |
| 16 | +#################################### |
| 17 | +define_pdn_grid -name {top} -voltage_domains {CORE} |
| 18 | +add_pdn_stripe -grid {top} -layer {M1} -width {0.018} -pitch {0.54} -offset {0} -followpins |
| 19 | +add_pdn_stripe -grid {top} -layer {M2} -width {0.018} -pitch {0.54} -offset {0} -followpins |
| 20 | +add_pdn_ring -grid {top} -layers {M5 M6} -widths {0.504 0.544} -spacings {0.096} -core_offset {0.504} |
| 21 | + |
| 22 | +add_pdn_stripe -grid {top} -layer {M5} -width {0.12} -spacing {0.072} -pitch {2.16} -offset {1.50} -extend_to_core_ring |
| 23 | +add_pdn_stripe -grid {top} -layer {M6} -width {0.288} -spacing {0.096} -pitch {4.32} -offset {1.504} -extend_to_core_ring |
| 24 | + |
| 25 | +add_pdn_connect -grid {top} -layers {M1 M2} |
| 26 | +add_pdn_connect -grid {top} -layers {M2 M5} |
| 27 | +add_pdn_connect -grid {top} -layers {M5 M6} |
| 28 | + |
| 29 | +#################################### |
| 30 | +# Element grid |
| 31 | +#################################### |
| 32 | +# The halo around the macro prevents pdn from blocking pin access |
| 33 | +define_pdn_grid -macro -cells $::env(MACROS) \ |
| 34 | + -halo "$::env(MACRO_HALO_X) $::env(MACRO_HALO_Y)" \ |
| 35 | + -voltage_domains {CORE} -name ElementGrid |
| 36 | + |
| 37 | +add_pdn_connect -grid {ElementGrid} -layers {M5 M6} |
0 commit comments