I built an open-source GUI that generates UPF from power intent you draw on your real RTL hierarchy
Hi all,
I've been working on power intent for several years, and kept hitting the same thing: UPF is written by hand, line by line, and the actual power architecture only exists in your head.
It's especially tough for people new to low-power design.
So over the last ~6 months I built Power Intent Studio, an open-source (Apache 2.0) desktop app, with AI as my development partner. You load your RTL and .lib macros, the real elaborated hierarchy appears, and you build the power intent on top of it:
- power domains, supply sets, power switches, isolation, retention, level shifters
- a power state table (exported as a modern power state group or a legacy PST)
- UPF 3.0/3.1 and CPF 2.0/2.1 generation
- loading an existing UPF and mapping it back onto the design; unrecognised syntax is reported with its line number instead of failing
RTL goes through open-source front ends: slang for Verilog/SystemVerilog, GHDL + Yosys for VHDL, liberty-parser for .lib. The repo includes a SystemVerilog SoC example (aura_top) with six domains, three switches and SRAM macros, and its full generated UPF, so you can judge the output yourself.
What it is NOT: a sign-off checker. It doesn't verify that your power intent is correct; it writes what you draw. Structural checks are one of the ideas I'd love to explore next.
I'd really value feedback from people who write UPF every day:
- What would make this useful in your flow?
- Throw your UPF at it. What doesn't load?