packages/chip/docs/architecture-optimization/sota-2028/power-delivery.md
Sub-report of 2028-sota-integrated-report.md.
| SoC | Process | Companion PMIC | Public rail count | Notes |
|---|---|---|---|---|
| Snapdragon 8 Elite Gen 5 | TSMC N3P | PMK8550 / PM8550 family (multi-die set: 8550, 8550VS, 8550B, PMR735, PMX75, PM8010, plus separate Hexagon PMIC) | ~6-8 dies, 30-40 LDOs + ~12-16 SMPS bucks | RPMh + RSC + VRM accelerators coordinate per-rail. Linaro DT binding qcom,rpmh-regulator lists discrete buck/LDO control. |
| MediaTek Dimensity 9500 | TSMC N3P | MT6373 + MT6363 (+ MT6362 sub-PMIC) | MT6363 ≈ 7 bucks + 4 VEMC + LDOs; MT6373 ≈ 4 bucks + 16 LDOs | Dual-PMIC partition. Some rails GPU/NPU-only fast-DVFS bucks; others AON / IO / analog LDOs. |
| Apple A19 Pro | TSMC N3P | Custom Apple (no public part #; teardowns show ≥ 2 Apple PMIC + Dialog/STMicro for sub-systems) | ~12-18 primary rails on-die regulated | Apple uses many fine-grained on-die LDOs per cluster; PMIC supplies pre-regulated mid-voltage rails (~1.0 V) that SoC post-regulates per domain. |
| Samsung Exynos 2600 | Samsung SF2 (2 nm GAA) | S2MPS27 + S2MPB02-class | ~8-10 SMPS + 20+ LDOs across pair | I²C / SPMI control. |
| Google Tensor G5 | TSMC 3 nm | Reused Samsung S2MPS-class | ~10-14 primary rails | Upstream DT google,gs201-power-domain hints at coarse layout. |
| SoC | Sustained TDP (independent throttle) | Peak power | Typical Tj |
|---|---|---|---|
| Snapdragon 8 Elite Gen 5 | ~6.5-7.5 W (Galaxy S26 thermal) | ~12-14 W peak burst | 95-110 °C |
| Dimensity 9500 | ~6 W ("56% NPU peak power down" claim) | ~11 W peak | 95-105 °C |
| A19 Pro | ~6 W iPhone 17 Pro; Tom's Guide 15.5 h battery | ~10 W peak | 95-100 °C |
| Exynos 2600 | Provisional; early reviews show poor sustained vs peak | ~12 W peak (S26 tests) | 95-110 °C |
packages/chip| Aspect | State | Evidence |
|---|---|---|
| PMIC | None. No vendor, no IP, no board placement. | docs/architecture-optimization/physical-power-thermal.md |
| Rail count | 2 (VDDCORE @ 1.8 V, VDDIO @ 3.3 V) for Sky130 demo pad ring | package/e1-demo-pinout.yaml |
| On-die LDOs / IVR | None | grep returns 0 |
| DVFS controller | None. Only narrative in docs/arch/linux-capable-cpu-contract.md | |
| Droop sensors | None | |
| AVFS / adaptive clocking | None | |
| BSPDN | frontside_power_delivery_until_specific_bspdn_option_is_selected in docs/spec-db/process-14a-effects.yaml. Two variants planned: frontside_pdn_a14_class, backside_pdn_or_super_power_rail_follow_on | |
| Decap strategy | OpenLane defaults on Sky130 demo. No package-level or DTC plan. | |
| IR-drop signoff | OpenROAD irdrop.rpt only: VPWR worst 87.6 µV @ TT 25 °C 1.8 V; VGND 105.98 µV — 5.5 mW SkyWater 130 nm demo. Not mobile-class workload. | |
| EM signoff | Not produced | |
| UPF / IEEE 1801 | Not authored | |
| Power-management firmware | Not started. No SBI MPxy, RPMI client, SCMI server | |
| Total budget | 5.5 mW (OpenLane demo) vs 4.57 W modeled in soc-optimized-operating-point.yaml |
Gap: design-document level only on PDN; ~830× scaling distance between OpenLane demo current (3 mA on VDDCORE) and 2028 phone-class draw (~5 A across all core rails at ~0.7 V).
pd/openroad/ config), not critical path. Budget shows +6% perf and 30% droop reduction if thermal mitigation closes.Aligned with soc-optimized-operating-point.yaml's 2-core CPU + NPU + memory layout, scaled to phone-class. Budget targets, not measurements.
| # | Rail | Nominal V (TT) | DVFS range | Peak I (A) | Avg I (A) | Regulator | Domain |
|---|---|---|---|---|---|---|---|
| 1 | VDD_CPU_BIG | 0.70 V | 0.55-0.95 V | 3.5 | 1.0 | Ext buck + on-die dLDO/core | 2× big OoO cores @ 3.2 GHz base |
| 2 | VDD_CPU_LITTLE | 0.65 V | 0.50-0.85 V | 1.5 | 0.4 | Ext buck + on-die dLDO | 4× little in-order |
| 3 | VDD_NPU | 0.70 V | 0.55-0.90 V | 2.5 | 1.7 | Ext buck + on-die dLDO | 44 TOPS @ 1.2 W |
| 4 | VDD_GPU | 0.70 V | 0.55-0.90 V | 2.0 | 0.6 | Ext buck | Framebuffer + future GPU |
| 5 | VDD_SOC_FABRIC | 0.75 V | 0.65-0.85 V | 1.2 | 0.5 | Ext buck | NoC, IOMMU, system cache |
| 6 | VDD_SRAM | 0.80 V | 0.70-0.90 V | 1.5 | 0.6 | Ext buck | All on-die SRAM |
| 7 | VDD_LPDDR_VDDQ | 0.50 V | fixed | 0.8 | 0.5 | Ext buck | LPDDR5X IO |
| 8 | VDD_LPDDR_VDD1 | 1.80 V | fixed | 0.3 | 0.15 | Ext LDO | LPDDR5X array |
| 9 | VDD_LPDDR_VDD2H/2L | 1.05/0.50 V | fixed | 0.5 | 0.3 | Ext buck | LPDDR controller |
| 10 | VDD_PHY_ANALOG | 0.85 V | fixed | 0.4 | 0.2 | Ext LDO | LPDDR PHY analog |
| 11 | VDD_AON | 0.75 V | fixed | 0.05 | 0.02 | Ext LDO + on-die retention LDO | AON island, RTC, mgmt |
| 12 | VDD_PMC | 0.80 V | fixed | 0.1 | 0.05 | Ext LDO | Power-mgmt RISC-V (Ibex) |
| 13 | VDD_IO_18 | 1.80 V | fixed | 0.5 | 0.2 | Ext buck | GPIO, audio, sensor IO |
| 14 | VDD_IO_33 | 3.30 V | fixed | 0.2 | 0.1 | Ext buck | Slow IO, eMMC fallback |
| 15 | VDD_USB_PHY / PCIe | 0.85 / 1.20 V | fixed | 0.3 | 0.1 | Ext LDO | USB 3.x + PCIe Gen4 PHY |
| 16 | VDD_RF_REF | 1.80 V | fixed | 0.2 | 0.05 | Ext LDO | WiFi/BT analog ref |
Sum: ~5.0 W peak, ~3.5 W sustained at 95 °C Tj, ~1.0 W idle. Matches soc-optimized-operating-point.yaml (max 4.57 W modeled).
pd/openlane supports cap density.S-mode Linux --SBI MPXY (sysbus mailbox)--> M-mode OpenSBI
|
| RPMI v1.0
v
Eliza Power-Mgmt Core (Ibex-32)
|
| SPMI / I2C / RPMSG-equivalent
v
External PMIC set
pd/signoff/sta/*.pd/signoff/power.rpt. Replaces modeled numbers in soc-optimized-operating-point.yaml.benchmarks/power/manifests/e1-npu-sustained-capture.template.json.make soc-optimization).docs/spec-db/process-14a-effects.yaml).metrics.json mW with VCD-driven power.rpt for: NPU INT8 GEMM saturation, CPU integer burst, idle, display refresh.pd/openlane/runs/.../padframe_inclusive_lvs must feed back into IR-drop.| Risk | Severity | Mitigation |
|---|---|---|
| No open mobile-class PMIC IP exists. Synopsys/Renesas/Maxim/TI/MPS catalog parts are closed; "open PMIC" in 2025 limited to academic ASICs and few RISC-V-controlled industrial parts (Silergy, Allwinner T536). | High | v0 SKU uses 6-8 catalog buck/LDO ICs on daughtercard, controlled via I²C/SPMI by mgmt core. v1 internalizes. |
| A14 production 2028 ships without BSPDN. Mobile A14 is frontside-only; BSPDN ("A12") slips to 2029. | Medium | Plan FSPDN as primary release. Treat BSPDN as 2029 re-spin, not 2028 commitment. |
| Power signoff EDA is closed. OpenROAD lacks vector-driven dynamic IR-drop. Voltus / RedHawk-SC required for tapeout-grade. | High | Budget for commercial EDA seats during signoff. Document open-EDA fallback gating release if Voltus unavailable: static-only IR + worst-case vectorless dynamic with 2× extra margin. |
| Droop response at >3.5 GHz requires fast custom loops. Public 22 nm dLDO numbers at lower clocks; mobile big-core 3.2 GHz + NPU peak switching events stress the loop. | Medium | Mandate adaptive clocking (1-cycle stretch) so droop tolerance is not solely on regulator response. |
| BSPDN thermal penalty if 2029 variant. Active layer buried in BEOL of carrier; local Tj rises 5-10 °C at same power. | Medium | Reserve 5 °C thermal headroom in BSPDN variant; require enclosure rework before that SKU. |
| SBI MPXY + RPMI is new — kernel drivers landed 2025 in 6.x, ABI settling. | Low-Medium | Track Linux mainline carefully; pin OpenSBI release used at silicon bring-up; document fallback to direct PSCI-style calls. |
| No droop sensor IP today. All-digital droop detectors well-published but Eliza has none in RTL. | High | Allocate one engineer-month to port public 22 nm-style ADCD design into our PDK; bind into rtl/power/. |
| PMIC-to-SoC interface (SPMI vs I²C vs RPMSG) — must be chosen before pad ring close. | Medium | Standardize on SPMI v2.0 for v0 (industry default), plus I²C fallback for bring-up board. |
| Decap density at 14A — actual DTC area cost competes with logic placement. | Medium | Floor-plan decap allocations in pd/openroad/ early; mark hot rails for DTC priority. |
docs/pd/rail-plan-2028.yaml listing 16 rails, nominal V, DVFS range, peak/avg I, regulator type, decoupling target. Bind to pd/signoff/manifest.yaml.docs/pd/pmic-selection.md with 3 candidate paths (catalog-daughtercard / closed-IP / custom analog); pick v0 path.pd/upf/e1_soc_top.upf: 16 power domains, isolation cells, retention per island. UPF gate added to make pd-check.rtl/power/droop_sensor.sv + rtl/power/clock_stretcher.sv ports of public 22 nm designs; cocotb tests for droop event injection.scripts/check_pdn_workload_signoff.py — fails closed if pd/signoff/<RUN>/reports/ir_drop.rpt is not vector-driven, multi-corner, signed by Voltus/RedHawk OR explicitly waived with open-flow fallback margin.soc-optimized-operating-point.yaml to rail-plan; gate operating-point report on rail-plan hash, so future modeled-power changes invalidate the claim.docs/project/spec-rtl-sw-pd-handoff-work-order.yaml.