How do you sign off timing for a DVFS design in PrimeTime?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
You can run one scenario per voltage combination, but the count grows as levels to the power of domains and it is easy to skip a mixed pair. Simultaneous multivoltage analysis (SMVA) in PrimeTime times every path under every legal combination of its domains' levels in one run, which catches the cross-domain path that fails only when one side is fast and the other slow.
Technical Explanation
- Scenario approach: each level combination is a separate PT scenario; two domains with two levels already need four per PVT corner.
- Mixed pairs matter: on a cross-domain path, launch and capture clocks scale with different supplies, so skew shifts and hold can fail in only one mixed pair.
- SMVA: with
timing_enable_cross_voltage_domain_analysis(PT) true, graph-based analysis covers all supply combinations for each path, excluding impossible ones, in one run. - Named levels:
set_voltage_levels(PT) names references such as lo and hi on a supply group;set_voltage(PT) with -reference_name sets each value. - Requirements: UPF power intent, scaling library groups, CCS noise data in every library, and PrimeTime-ADV-PLUS licenses.
- Reporting: each voltage configuration is its own path,
report_timing(PT) prints a Voltage Config line, and -domain_crossing only_crossing keeps cross-domain paths. - What breaks: timing only all-low and all-high misses the mixed pair, and hold fails in silicon when software runs one domain fast and the other slow.
# [PrimeTime] pt_shell
set_app_var timing_enable_cross_voltage_domain_analysis true
set sg_gpu [get_supply_groups VDD_GPU]
set_voltage_levels -reference_names {lo hi} $sg_gpu
set_voltage -reference_name hi -object_list $sg_gpu 0.95
set_voltage -reference_name lo -object_list $sg_gpu 0.75
set sg_dsp [get_supply_groups VDD_DSP]
set_voltage_levels -reference_names {lo hi} $sg_dsp
set_voltage -reference_name hi -object_list $sg_dsp 1.10
set_voltage -reference_name lo -object_list $sg_dsp 0.90
check_timing -include supply_net_voltage
report_timing -domain_crossing only_crossingWhat To Check
- Every DVFS supply group has named levels and a value for each level.
check_timingreports no unconnected PG pins and no supply without a voltage.- Cross-domain paths appear under every legal voltage configuration, not only uniform ones.
- Level shifters on crossings are characterized for both their input and output rails.
Command Checks & Actions
set_app_var timing_enable_cross_voltage_domain_analysis trueEnable SMVA before the first timing update
get_supply_groups VDD_GPUCollect the supply group that the levels apply to
set_voltage_levels -reference_names {lo hi} $sg_gpuName the voltage references for the group
set_voltage -reference_name hi -object_list $sg_gpu 0.95Give a named reference its voltage
check_timing -include supply_net_voltageFind supplies with no voltage before trusting results
report_timing -domain_crossing only_crossingReport only cross-domain paths, each with its Voltage Config
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Worst cross-domain hold slack is +12 ps across all four GPU and DSP configurations.
- Suspicious (illustrative): Only the GPU:hi, DSP:lo configuration sits within 5 ps of zero; review its margin before closing.
- Hard stop: A GPU-to-DSP path fails hold at -18 ps in GPU:hi, DSP:lo while the all-high and all-low runs both pass.
Common Mistake
The Trap: Signing off only the all-low and all-high DVFS scenarios.
- Mixed combinations on cross-domain paths are never timed, and a hold failure shows up only when software pairs a fast domain with a slow one.
What The Interviewer Is Testing
- Do you see why mixed voltage pairs on cross-domain paths are the risk, not the uniform corners?
- Can you set up named voltage references and read the Voltage Config in a report?
Follow-up Question & Model Response
"If SMVA exists, why do some teams still run one scenario per DVFS mode?"
Candidate Model Response: SMVA needs PrimeTime-ADV-PLUS licenses, scaling library groups and CCS noise data, and not every flow has all three. Per-mode scenarios also match how the chip was characterized and how ECO work is split across people. The cost is coverage, because you must enumerate every legal mixed pair by hand. If you go that way, generate the scenario list from the power-state table rather than a spreadsheet.
Practical Example
Design Scenario: (illustrative) PD_GPU runs at 0.75 V or 0.95 V and PD_DSP at 0.9 V or 1.1 V. A GPU-to-DSP path through a level shifter has +40 ps hold slack at all-high and +35 ps at all-low. At GPU:hi, DSP:lo the GPU launch clock arrives early and the DSP capture clock arrives late, so hold drops to -18 ps. SMVA reports it as one more path with Voltage Config VDD_GPU:hi, VDD_DSP:lo. Adding hold buffers on the GPU side clears it, and all four configurations then pass with at least +12 ps.
Low-Power & UPF Handbook
Master Low-Power VLSI & Multivoltage Design
Read the complete low-power guide library covering power domains, level shifters, isolation clamps, state retention, and UPF signoff verification.

Continue practising