How do you keep implementing when the UPF isn't finished yet?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
Use the early data check manager: set_early_data_check_policy (ICC2) sets how each multivoltage check reacts (error, tolerate or repair), and report_early_data_checks (ICC2) lists what was relaxed and how often it fired. The older route is the incomplete UPF flow, enabled with mv.incomplete_upf.enable (ICC2). Either way the tool is guessing at missing intent, so every relaxed check must be closed before signoff.
Technical Explanation
- Global policy:
-policy strict | lenient | normalwithout-checks. Lenient drops every check to its lowest severity; strict raises every check to its highest. - Normal: checks report early data issues but the flow and optimization behave as default, so you can relax one area without touching the rest.
- Per-check policy: add
-checks; levels run error, tolerate, repair. At error, invalid mapped cells drop the strategy (UPF-108); repair infers a missing voltage area. - One-way ratchet: once set, a policy cannot move to a stricter setting without
reset_upf(ICC2). The one exception is the missing voltage area check. - Legacy flow:
mv.incomplete_upf.enable(ICC2) makes the tool ignore listed UPF errors, for example using the first of two conflicting power states. - Do not mix: any data check manager command disables the legacy flow, and a global policy makes ICC2 ignore the incomplete UPF app options.
- What breaks: a tolerated conflict means the tool picked a state for you, so MV cells and timing follow a guess nobody reviewed.
# [ICC2] icc2_shell
set_early_data_check_policy -policy normal
set_early_data_check_policy -policy lenient -checks mv.pst.conflict_supply_state
load_upf mychip.upf
commit_upf
report_early_data_checks
get_early_data_check_recordsWhat To Check
- Which checks run below error, and who owns the UPF fix for each.
- The fail count of each relaxed check falling to zero over the weeks.
- That the signoff run starts from a clean session with no relaxed policy.
- No script sets both a global policy and the legacy incomplete UPF option.
Command Checks & Actions
set_early_data_check_policy -policy normalReport early data issues while keeping default flow behavior
set_early_data_check_policy -policy lenient -checks mv.pst.conflict_supply_stateTolerate one known UPF conflict while its owner fixes it
report_early_data_checksList each failing check with its policy, strategy and fail count
get_early_data_check_recordsReturn violations as check@object for use in scripts
mv.incomplete_upf.enableLegacy incomplete UPF flow switch, default false
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): The report shows one relaxed check, mv.pst.conflict_supply_state at tolerate with a fail count of 1, and a ticket against it.
- Suspicious (illustrative): A second relaxed check appears that nobody set on purpose, such as an invalid library cell list being tolerated.
- Hard stop: The signoff run still shows any tolerated or repaired check: the netlist was built on guessed power intent.
Common Mistake
The Trap: Setting a lenient policy for bring-up and leaving it in the run scripts through signoff.
- The policy cannot tighten later in that session without
reset_upf(ICC2), so conflicts the tool resolved by guessing ship quietly.
What The Interviewer Is Testing
- Do you know how to unblock a flow without hiding the problem?
- Can you name the three global settings and the three per-check policy levels?
Follow-up Question & Model Response
"Your UPF has conflicting supply states on two connected supplies. What does the tool do under each policy?"
Candidate Model Response: With the check at error, commit_upf (ICC2) stops with UPF-159 naming both states and both supplies. At tolerate, it continues and takes the later state, and the verbose report records that choice. That is fine for floorplan trials, never for signoff. The real fix is in the UPF: make the two power state definitions agree or remove one.
Practical Example
Design Scenario: (illustrative) Week 3 of MYCHIP floorplanning: the UPF has a supply-state conflict between PD_MYCHIP.primary and SS_AON, and the UPF owner is still fixing it. You set -policy normal, relax only mv.pst.conflict_supply_state to lenient, and commit_upf (ICC2) continues. report_early_data_checks (ICC2) shows one tolerated violation. It goes on the signoff checklist, and the final run starts from a fresh session with the default policy.
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