Skip to content

Commit 0e79654

Browse files
committed
gt2n: extend backside PDN with BM1/BM2 mesh, add backside RC
BPR followpins on their own do not stitch the per-row vdd/vss rails together, so the backside grid was a chain of disconnected horizontal strips. Add a two-layer perpendicular mesh (BM1 vertical, BM2 horizontal) plus BV0/BV1 connects, modeled on asap7's M5/M6 over M1/M2 followpin pattern. Top of the standard-cell grid is now BM2. Also adds resistance values for the backside cut layers (BV0..BV4) to setRC.tcl so PSM's analyze_power_grid does not error out with PSM-0021 when the PG network includes backside vias. Calls out that every RC value in this file is a placeholder, not silicon-calibrated. Verified end-to-end on gt2n/gcd: 873s wall time, 0 DRC violations, 0 ANT violations. Signed-off-by: Matthew Guthaus <mrg@ucsc.edu>
1 parent 49349cf commit 0e79654

2 files changed

Lines changed: 41 additions & 19 deletions

File tree

flow/platforms/gt2n/pdn.tcl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,15 @@ global_connect
99
####################################
1010
set_voltage_domain -name {CORE} -power {vdd} -ground {vss}
1111
####################################
12-
# standard cell grid (backside power: just BPR followpins for now)
12+
# standard cell grid (backside power: BPR followpins + BM1/BM2 mesh)
1313
####################################
14-
define_pdn_grid -name {grid} -voltage_domains {CORE} -pins {BPR}
14+
define_pdn_grid -name {grid} -voltage_domains {CORE} -pins {BM2}
1515
add_pdn_stripe -grid {grid} -layer {BPR} -width {0.032} -pitch {0.144} -offset {0} -followpins
16+
# BM1 perpendicular to BPR; modest mesh density.
17+
add_pdn_stripe -grid {grid} -layer {BM1} -width {0.224} -spacing {0.112} \
18+
-pitch {1.792} -offset {0.896}
19+
# BM2 perpendicular to BM1, wider for lower IR.
20+
add_pdn_stripe -grid {grid} -layer {BM2} -width {0.448} -spacing {0.112} \
21+
-pitch {1.792} -offset {0.896}
22+
add_pdn_connect -grid {grid} -layers {BPR BM1}
23+
add_pdn_connect -grid {grid} -layers {BM1 BM2}

flow/platforms/gt2n/setRC.tcl

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,46 @@
66
# R per length is computed as (resistivity [uOhm.cm] * 0.01) / (thickness [um])
77
# divided by the minimum wire width, giving ohm / um. Capacitance is a rough
88
# guess (no PEX data shipped in the ICT for these layers).
9+
#
10+
# WARNING: ALL VALUES BELOW ARE FAKE / PLACEHOLDER.
11+
# They are dimensional estimates only and are not calibrated against
12+
# silicon or a vendor extraction model. Use them to exercise the flow
13+
# (timing closure, IR drop sweeps, routing congestion) but do NOT treat
14+
# any number derived from them as physically meaningful. Replace with
15+
# values from a real RCX / QRC model before drawing conclusions.
916

1017
# Front-side routing
11-
set_layer_rc -layer M0 -resistance 259 -capacitance 1.5e-4
12-
set_layer_rc -layer M1 -resistance 156 -capacitance 1.5e-4
13-
set_layer_rc -layer M2 -resistance 259 -capacitance 1.5e-4
14-
set_layer_rc -layer M3 -resistance 156 -capacitance 1.5e-4
15-
set_layer_rc -layer M4 -resistance 40 -capacitance 1.7e-4
16-
set_layer_rc -layer M5 -resistance 40 -capacitance 1.7e-4
17-
set_layer_rc -layer M6 -resistance 3.5 -capacitance 2.0e-4
18-
set_layer_rc -layer M7 -resistance 3.5 -capacitance 2.0e-4
19-
set_layer_rc -layer M8 -resistance 3.5 -capacitance 2.0e-4
20-
set_layer_rc -layer M9 -resistance 3.5 -capacitance 2.0e-4
21-
set_layer_rc -layer M10 -resistance 0.67 -capacitance 2.5e-4
18+
set_layer_rc -layer M0 -resistance 259 -capacitance 1.5e-4
19+
set_layer_rc -layer M1 -resistance 156 -capacitance 1.5e-4
20+
set_layer_rc -layer M2 -resistance 259 -capacitance 1.5e-4
21+
set_layer_rc -layer M3 -resistance 156 -capacitance 1.5e-4
22+
set_layer_rc -layer M4 -resistance 40 -capacitance 1.7e-4
23+
set_layer_rc -layer M5 -resistance 40 -capacitance 1.7e-4
24+
set_layer_rc -layer M6 -resistance 3.5 -capacitance 2.0e-4
25+
set_layer_rc -layer M7 -resistance 3.5 -capacitance 2.0e-4
26+
set_layer_rc -layer M8 -resistance 3.5 -capacitance 2.0e-4
27+
set_layer_rc -layer M9 -resistance 3.5 -capacitance 2.0e-4
28+
set_layer_rc -layer M10 -resistance 0.67 -capacitance 2.5e-4
2229

23-
# Backside (no calibration data in ICT; estimate from layer dimensions)
24-
set_layer_rc -layer BPR -resistance 30 -capacitance 1.0e-4
25-
set_layer_rc -layer BM1 -resistance 5 -capacitance 1.5e-4
26-
set_layer_rc -layer BM2 -resistance 5 -capacitance 1.5e-4
30+
# Backside (fake values; ICT has no backside data, dimensions only)
31+
set_layer_rc -layer BPR -resistance 30 -capacitance 1.0e-4
32+
set_layer_rc -layer BM1 -resistance 5 -capacitance 1.5e-4
33+
set_layer_rc -layer BM2 -resistance 5 -capacitance 1.5e-4
2734

28-
# Via resistances (rough)
35+
# Via resistances (fake; rough scaling vs. cut size)
2936
set_layer_rc -via V0 -resistance 10
3037
set_layer_rc -via V1 -resistance 10
3138
set_layer_rc -via V2 -resistance 8
3239
set_layer_rc -via V3 -resistance 8
3340
set_layer_rc -via V4 -resistance 5
3441
set_layer_rc -via V5 -resistance 5
3542

43+
# Backside via resistances (fake; same scale as front-side V0..V4)
44+
set_layer_rc -via BV0 -resistance 10
45+
set_layer_rc -via BV1 -resistance 8
46+
set_layer_rc -via BV2 -resistance 8
47+
set_layer_rc -via BV3 -resistance 5
48+
set_layer_rc -via BV4 -resistance 5
49+
3650
set_wire_rc -signal -layer M3
37-
set_wire_rc -clock -layer M5
51+
set_wire_rc -clock -layer M5

0 commit comments

Comments
 (0)