15 min read | Intermediate Level
What You'll Learn
- Understand where UPF fits in the RTL-to-GDS design flow
- Learn how simulation, synthesis, and physical design tools use UPF
- Recognize the role of power intent specification in each design stage
- Identify the EDA tool ecosystem supporting UPF
UPF in the RTL-to-GDS Flow
The ASIC/SoC design flow transforms high-level RTL descriptions into physical silicon layouts through multiple stages. UPF integrates at each stage, ensuring power intent remains consistent from specification to implementation.
Traditional Design Flow (Without UPF)
Before UPF standardization, power management was handled differently at each stage:
┌─────────────────┐
│ RTL Design │ → Power logic mixed with functional code
└────────┬────────┘
↓
┌─────────────────┐
│ Simulation │ → Limited power-aware checking
└────────┬────────┘
↓
┌─────────────────┐
│ Synthesis │ → Tool-specific power commands
└────────┬────────┘
↓
┌─────────────────┐
│ Place & Route │ → Different power specs
└────────┬────────┘
↓
┌─────────────────┐
│ Signoff │ → Manual power verification
└─────────────────┘
This approach led to inconsistencies, errors, and significant manual effort to verify power intent across tools.
Modern Flow with UPF
UPF provides a unified power specification used throughout the flow:
┌──────────────────┐
│ Architecture │ → Define power domains, states
└────────┬─────────┘
↓
┌──────────────────┐ ┌──────────────────┐
│ RTL Design │ ←→ │ UPF Creation │ (Parallel development)
└────────┬─────────┘ └────────┬─────────┘
│ │
└────────────┬───────────┘
↓
┌────────────────────────┐
│ RTL + UPF Combined │ → Single source of truth
└────────┬───────────────┘
↓
┌────────────────────────┐
│ Power-Aware │ → UPF defines X-propagation,
│ Simulation │ state transitions
└────────┬───────────────┘
↓
┌────────────────────────┐
│ Logic Synthesis │ → UPF guides cell insertion
│ with UPF │ (isolation, retention, LS)
└────────┬───────────────┘
↓
┌────────────────────────┐
│ Physical Design │ → UPF defines domain layout,
│ with UPF │ power routing
└────────┬───────────────┘
↓
┌────────────────────────┐
│ Power Analysis │ → UPF provides state info
│ & Signoff │ for accurate estimation
└────────────────────────┘
The same UPF file accompanies the design through all stages, ensuring consistency. Tools read UPF to understand power intent and implement appropriate power management logic.
Power Intent Specification Phase
UPF creation begins early in the design cycle, often in parallel with RTL development.
Architecture and Planning
During architecture, power architects define:
- Power Domain Boundaries: Which blocks can be independently controlled?
- Voltage Levels: Operating voltages for each domain
- Power States: Sleep modes, active modes, performance states
- Power Management Strategy: When to gate power, isolate signals, retain state
- Control Mechanisms: How software controls power states
These decisions translate directly into UPF commands:
# Architecture Decision: CPU and GPU are separate power domains
create_power_domain PD_CPU -elements {CPU_subsystem}
create_power_domain PD_GPU -elements {GPU_subsystem}
# Architecture Decision: CPU runs at 1.0V, GPU at 0.9V for efficiency
add_power_state VDD_CPU -state {ACTIVE 1.0}
add_power_state VDD_GPU -state {ACTIVE 0.9} -state {SLEEP 0.0}
# Architecture Decision: GPU can be power-gated to save leakage
create_power_switch PSW_GPU -domain PD_GPU ...
Starting UPF early enables power-aware RTL simulation before physical design, catching power management bugs when they're easiest to fix.
Architecture-Stage Power Decisions
In a typical mobile SoC design, power architects identify 15-25 power domains during architecture phase by analyzing functional blocks, performance requirements, and power budgets. These decisions, captured in UPF, guide the entire implementation flow and determine achievable power savings.
UPF in Simulation and Verification
RTL simulation with UPF enables early detection of power management issues.
Power-Aware Simulation
Simulators use UPF to:
- Corrupt Signal Values: Propagate 'X' from powered-off domains
- Check Isolation: Verify isolation cells prevent X-propagation
- Check Retention: Ensure state is preserved during power-down
- Verify Level Shifting: Validate voltage domain crossings
- Simulate Power States: Test state machine transitions
Example UPF for simulation:
# Define isolation strategy
set_isolation ISO_GPU -domain PD_GPU \
-isolation_signal iso_gpu \
-isolation_sense high \
-clamp_value 0
# Define retention strategy
set_retention RET_GPU -domain PD_GPU \
-retention_signal ret_gpu \
-retention_sense high
During simulation, when PD_GPU powers down:
- Simulator forces all GPU outputs to 'X'
- If
iso_gpuis asserted, isolation cells clamp outputs to 0 (preventing X-propagation) - If
ret_gpuis asserted, retention registers preserve their state - Testbench can verify correct power sequencing
Without UPF-aware simulation, power domain bugs (forgotten isolation, incorrect retention timing) won't be discovered until gate-level simulation or silicon, where fixes are expensive.
Verification Challenges
Power-aware verification checks:
- X-Propagation: No unknowns from powered-off domains reach active logic
- Retention Coverage: All critical state is preserved during power cycles
- Isolation Timing: Isolation asserted before power-down, de-asserted after power-up
- Level Shifter Correctness: Voltage crossings handled safely
- Power State Legality: Only valid power state combinations reached
Quick Check
Q: Why is UPF-aware simulation important even before synthesis?
Show Answer
UPF-aware RTL simulation catches power management bugs early by checking isolation, retention, and X-propagation behavior. Finding these issues at RTL (before synthesis and layout) allows quick fixes. Discovering power bugs at gate-level or in silicon requires expensive respins and significant schedule delays.
UPF in Logic Synthesis
Synthesis tools use UPF to insert special cells and optimize for power.
Power-Aware Synthesis Tasks
During synthesis with UPF, tools:
- Insert Isolation Cells: At outputs of power-gated domains
- Insert Level Shifters: At voltage domain crossings
- Insert Retention Cells: Replace regular flip-flops with retention variants
- Optimize for Power: Use low-V_th cells in critical paths, high-V_th elsewhere
- Clock Gating: Insert clock gates for idle logic
UPF guides these insertions:
# UPF tells synthesis WHERE to insert isolation
set_isolation ISO_CPU_TO_TOP -domain PD_CPU \
-isolation_supply_set SS_TOP \ # Use always-on supply
-isolation_signal iso_cpu_en \
-isolation_sense high \
-clamp_value 0 \
-location parent # Insert in parent domain
# UPF specifies level shifter locations
set_level_shifter LS_GPU -domain PD_GPU \
-applies_to outputs \
-location self # Insert at domain boundary
Cell Mapping
Synthesis maps UPF strategies to library cells:
# Map isolation strategy to specific library cell
map_isolation_cell ISO_CPU_TO_TOP \
-domain PD_CPU \
-lib_cells {ISOL_AND_0} # Use AND-based isolation, clamp to 0
# Map level shifter to library cell
map_level_shifter_cell LS_GPU \
-domain PD_GPU \
-lib_cells {LS_HL} # High-to-low level shifter
Synthesis with UPF
A typical SoC synthesis run with UPF automatically inserts thousands of special cells: isolation cells at power domain boundaries, level shifters for multi-voltage interfaces, and retention flip-flops for state preservation. Manual insertion would be error-prone and impractical; UPF automation ensures correctness and completeness.
Multi-Voltage Optimization
UPF enables voltage-aware optimization:
- Synthesis knows which paths cross voltage domains
- Level shifters inserted automatically
- Timing analysis accounts for level shifter delays
- Voltage-dependent cell delays used for accurate timing
Synthesis tools read UPF supply definitions to determine voltage levels for each instance, enabling accurate delay calculation and voltage-aware optimization.
UPF in Physical Design
Place and route tools use UPF for physical implementation of power intent.
Physical Design Tasks with UPF
During physical design, UPF guides:
- Floorplanning: Place power domains in separate regions
- Power Planning: Create power rings and stripes per domain
- Switch Placement: Position power switches near domain
- Cell Placement: Keep domain cells together, respect boundaries
- Power Routing: Route VDD_domain nets from switches
- Special Cell Handling: Place isolation/retention cells optimally
Power Switch Implementation
UPF defines power switches; place-and-route implements them:
# UPF: Define power switch
create_power_switch PSW_CPU -domain PD_CPU \
-input_supply_port {vin VDD} \ # Input from always-on
-output_supply_port {vout VDD_CPU} \ # Output to domain
-control_port {ctrl pwr_enable_cpu} \
-on_state {on vin {ctrl}} \
-off_state {off {!ctrl}}
# Physical design tool:
# 1. Places switch cells near PD_CPU
# 2. Routes VDD to switch input
# 3. Routes switch output to VDD_CPU power grid
# 4. Connects pwr_enable_cpu control signal
Power Grid Planning
Multi-domain designs require separate power grids:
- VDD (always-on) grid spans entire die
- VDD_CPU grid only in CPU domain area
- VDD_GPU grid only in GPU domain area
- VSS (ground) typically shared across all domains
UPF supply network definitions inform power grid planning, ensuring each domain receives appropriate supply routing without shorts between different voltage nets.
Isolation and Retention Cell Placement
Physical design optimizes special cell placement:
- Isolation Cells: Placed at domain boundary to minimize timing impact
- Level Shifters: Positioned to minimize wire delay on shifted signals
- Retention Cells: Placed normally; connected to retention power supply
Quick Check
Q: Why does physical design need UPF information about power switches?
Show Answer
Power switches must be physically placed near their controlled domain to minimize voltage drop and routing resistance. UPF specifies which switch controls which domain, enabling the place-and-route tool to optimally position switches and route the switched power supply (e.g., VDD_CPU) from switch outputs to the domain's power grid.
Power Analysis and Signoff
UPF enables accurate power estimation and verification throughout the flow.
Power Analysis Stages
| Stage | UPF Usage | Accuracy |
|---|---|---|
| RTL | UPF defines power states for activity-based estimation | ±30-40% |
| Post-Synthesis | Gate-level netlist with UPF for cell-level power | ±15-20% |
| Post-Layout | Parasitic-extracted netlist with UPF for state-aware analysis | ±5-10% |
| Signoff | Final netlist + UPF + vectors for precise power | ±3-5% |
State-Dependent Power Analysis
UPF power state tables enable per-state power estimation:
# Define power states
add_pst_state PST_SYSTEM \
-state {ACTIVE {VDD_CPU ON} {VDD_GPU ON}} \
-state {GPU_IDLE {VDD_CPU ON} {VDD_GPU OFF}} \
-state {SLEEP {VDD_CPU OFF} {VDD_GPU OFF}}
# Power analysis tool:
# - Estimates power for each state
# - Reports: ACTIVE=500mW, GPU_IDLE=200mW, SLEEP=5mW
# - Calculates average power based on state probabilities
Signoff Checks
Final verification with UPF includes:
- UPF Consistency: Verify UPF matches implemented netlist
- Isolation Verification: Confirm isolation cells exist at all boundaries
- Retention Verification: Check retention cells and control connectivity
- Level Shifter Verification: Validate all voltage crossings have shifters
- Power State Reachability: Verify all legal states are achievable
Skipping UPF signoff checks can lead to silicon failures where power management doesn't work as intended, causing functional failures or excessive power consumption.
Tool Support and Ecosystem
All major EDA vendors support UPF across their tool suites.
Synopsys
- VCS: UPF-aware RTL simulation with power-aware checks
- Design Compiler: UPF-guided synthesis with cell insertion
- IC Compiler II: UPF-driven place and route
- PrimeTime PX: UPF-based power analysis and signoff
- VC Formal: UPF formal verification
Cadence
- Xcelium: UPF simulation (also supports legacy CPF)
- Genus: UPF synthesis and optimization
- Innovus: UPF physical design implementation
- Joules: UPF power analysis
- JasperGold: UPF formal verification
Mentor/Siemens
- Questa: UPF-aware simulation and power-aware verification
- Calibre: UPF-aware physical verification (DRC/LVS)
Ansys (Apache)
- PowerArtist: UPF-based RTL and gate-level power analysis
- RedHawk: UPF-driven power integrity signoff
IEEE 1801 standardization ensures that UPF files work across all vendors' tools, enabling best-of-breed tool selection and multi-vendor flows.
Multi-Vendor UPF Flows
Large semiconductor companies often use mixed-vendor flows: Synopsys for synthesis, Cadence for physical design, and Mentor for verification. The same UPF file works across all tools, ensuring power intent consistency despite using different vendors at each stage. This flexibility would be impossible with proprietary power formats.
Best Practices for UPF Integration
Successful UPF adoption requires following proven practices:
1. Start Early
- Create initial UPF during architecture phase
- Refine as RTL develops
- Enable early power-aware simulation
2. Maintain Single Source
- One UPF file (or consistent set) for all tools
- Avoid tool-specific power specifications
- Version control UPF with RTL
3. Verify at Each Stage
- RTL simulation: Check power state transitions
- Post-synthesis: Verify cell insertion
- Post-layout: Confirm physical implementation
- Signoff: Complete UPF consistency checks
4. Hierarchical UPF
- Define power intent at IP level
- Compose at SoC level
- Enable IP reuse with portable UPF
5. Collaborate Across Teams
- Power architects create UPF structure
- RTL designers ensure functionality
- Verification engineers check power management
- Physical designers implement intent
Common Beginner Mistakes
Mistake #1: Creating separate UPF files for different tools
Problem: Inconsistencies between synthesis and physical design UPF lead to mismatches and errors.
Solution: Maintain one master UPF file used by all tools. Use conditional sections if tool-specific content is unavoidable.
Mistake #2: Adding UPF late in the flow (post-synthesis)
Problem: Power bugs discovered late require RTL and UPF changes, causing schedule delays.
Solution: Start UPF during architecture. Simulate with UPF at RTL stage to catch power management issues early.
Mistake #3: Ignoring UPF verification
Problem: Assuming tools correctly interpret UPF without verification can result in missing isolation, incorrect retention, or wrong level shifters.
Solution: Perform UPF consistency checks at each stage: simulation logs, synthesis reports, layout DRCs, and signoff verification.
Practice Exercise
Challenge: Map UPF to Design Stages
For each design stage below, identify what UPF information is used and what the tool does with it:
- RTL Simulation
- Logic Synthesis
- Place & Route
- Power Analysis
Hint
Think about what each tool needs to know about power: simulation checks behavior, synthesis inserts cells, place-and-route implements physical structures, analysis estimates power consumption.
Solution
1. RTL Simulation UPF Info Used: Isolation/retention strategies, power states Tool Actions: - Propagates 'X' from powered-off domains - Checks isolation prevents X-propagation - Verifies retention preserves state - Validates power state transitions 2. Logic Synthesis UPF Info Used: Domain boundaries, isolation/retention/LS specs Tool Actions: - Inserts isolation cells at domain outputs - Replaces flip-flops with retention variants - Inserts level shifters at voltage crossings - Maps strategies to library cells 3. Place & Route UPF Info Used: Power switches, supply networks, domain boundaries Tool Actions: - Creates separate power domains (floorplan) - Places power switch cells - Routes domain-specific VDD nets - Implements power grid per domain 4. Power Analysis UPF Info Used: Power states, supply voltages, domain structure Tool Actions: - Estimates power per domain - Calculates state-dependent power - Reports power for each PST state - Validates power budget compliance
Summary
In this tutorial, you learned:
- UPF integrates throughout the RTL-to-GDS flow, providing consistent power intent from specification to signoff
- Simulation uses UPF to verify power state transitions, isolation, retention, and X-propagation behavior
- Synthesis uses UPF to automatically insert isolation, level shifter, and retention cells based on power strategies
- Physical design uses UPF to implement power switches, create domain-specific power grids, and optimize special cell placement
- All major EDA vendors (Synopsys, Cadence, Mentor, Ansys) support IEEE 1801 UPF across their tool suites
- Best practices include starting UPF early, maintaining single source, verifying at each stage, using hierarchical UPF, and cross-team collaboration