A feedthrough crosses a domain with no voltage area defined yet. What breaks, and how do you handle it?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
With a voltage area missing, ICC2 puts that domain in DEFAULT_VA, and it only buffers a feedthrough through the domain if the domain primary supply matches the top domain primary. Everything you implement there is provisional: buffers may sit on a supply that later turns out to be switched, and checks that need the real VA cannot run properly. Keep the net known, assign feedthrough supplies explicitly, and re-check once the voltage area exists.
Technical Explanation
- Default:
mv.upf.enable_missing_voltage_area(ICC2) is true, so missing VAs are allowed and top-level domains without one go to DEFAULT_VA. - Global policy trap: when Early Data Check runs with a global policy, ICC2 ignores
mv.upf.enable_missing_voltage_area(ICC2), so the option no longer controls this behavior. - Buffering rule: a buffer may go in a domain with no VA only if that domain primary is equivalent to the topmost primary.
- What breaks: if a later UPF makes that domain switchable, buffers already placed in its region sit on a rail that turns off.
- Checks:
check_mv_design(ICC2) still warns about missing voltage areas, so the warning list becomes your to-do list, not noise. - Supply assignment:
assign_feedthrough_supply(ICC2) picks related supplies for feedthrough ports to reduce dual-rail cells and avoid new violations. - Feedback:
generate_mv_feedback(ICC2) suggests isolation and level-shifter changes for feedthrough violations; you apply the fixes yourself.
# [ICC2] icc2_shell
get_app_option_value -name mv.upf.enable_missing_voltage_area
check_mv_design
assign_feedthrough_supply -net {dsp2cpu_req} -verbose
generate_mv_feedback -net {dsp2cpu_req}
report_early_data_checksWhat To Check
- Every domain still on DEFAULT_VA is listed and owned.
- Buffers on feedthrough nets are rechecked after the real VA is created.
- Feedthrough ports have assigned supplies, not guesses.
- Missing-VA warnings shrink over time, not grow.
Command Checks & Actions
get_app_option_value -name mv.upf.enable_missing_voltage_areaConfirm missing voltage areas are allowed
check_mv_designList missing voltage area warnings and crossing violations
assign_feedthrough_supply -net {dsp2cpu_req} -verboseAssign related supplies to the feedthrough ports on the net
generate_mv_feedback -net {dsp2cpu_req}Get suggested strategy changes for the feedthrough
report_early_data_checksSee which checks were tolerated or repaired, such as mv.va.missing_voltage_area
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Only PD3, which shares the top primary, remains on DEFAULT_VA, and assign_feedthrough_supply succeeds on all nets.
- Suspicious (illustrative): The feedthrough is buffered, but the MV-1057 count shows one net could not be assigned.
- Hard stop: Buffers sit in a region later made a switchable VA, or assign_feedthrough_supply reports MV-1061 on the net.
Common Mistake
The Trap: Treating the clean buffering result as final because no error appeared.
- When the VA arrives and the domain turns out switchable, those buffers die at shutdown and the feedthrough net goes X.
- Because the net passed every earlier check, nobody looks at it again unless the missing-VA warnings are tracked to closure.
What The Interviewer Is Testing
- Do you know how ICC2 treats a domain without a VA?
- Would you plan a re-check once the VA lands?
Follow-up Question & Model Response
"What changes if you disable missing voltage area support?"
Candidate Model Response: Domains without a VA are no longer assigned to DEFAULT_VA in either the top or the lower-level block. Implementation commands that need voltage areas then stop with an MV-51 error. That is stricter and safer late in the flow, because nothing gets built on a guess. Early on it blocks exploration, so most teams leave it on and track the warnings.
Practical Example
Design Scenario: (illustrative) The net dsp2cpu_req runs from PD_DSP to PD_CPU across the region of PD3, which has no VA yet and shares the top primary VDD1p0. ICC2 inserts two buffers there on DEFAULT_VA. Two weeks later a UPF update moves PD3 onto a switched primary, VDD1p0_SW, and gives it its own VA. The re-run of check_mv_design flags both buffers; the team reruns assign_feedthrough_supply and fix_mv_design, which converts them to dual-rail with backup pins on VDD1p0. The missing-VA warning list is now empty, so the feedthrough plan is final.
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