How does analyze_mv_feasibility detect CLP-style violations when power management cells cannot be mapped to library cells?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
analyze_mv_feasibility (ICC2) is a static low-power check that asks whether every isolation, enable-level-shifter, retention and level-shifter strategy can be mapped to a real library cell. If one cannot, it issues UPF-909, returns a Tcl status of 0, and lists each failing element with the check that failed, such as a data inversion or PVT mismatch. Run it after load_upf (ICC2) and before implementation, and add -level_shifter -format html for the detailed shifter report.
Technical Explanation
- What it checks: mapping feasibility of power-management cells against the loaded libraries; with no option it covers every cell type.
- When: after loading the UPF and before implementation. After insertion it analyzes the current netlist, so results can differ.
- Retention: before compile it only checks that retention control signals are defined; the full mapping needs a compiled netlist.
- Failure report: per element, the domain, strategy, clamp and sense, plus a reason such as data inversion mismatch or PVT mismatch.
- The report walks a fixed checking sequence, from strategy library cells and dont_touch down to voltage, clamp and sense matching.
- Level shifters:
analyze_mv_feasibility -level_shifter(ICC2) reports paths whose voltage violation cannot be fixed;-format htmladds per-cell detail. - What it saves you: a missing clamp-1 cell or a voltage-range gap found here is a library request, not a failed insertion run.
# [ICC2] icc2_shell
load_upf mychip.upf
analyze_mv_feasibility
analyze_mv_feasibility -level_shifter -format html
create_mv_cells
analyze_mv_feasibility
check_mv_designWhat To Check
- Run it right after
load_upf(ICC2) and read every UPF-909 before insertion. - Each failing element has a reason you can act on: add a cell, change a clamp, or change a sense.
- Rerun after compile to get the full retention mapping.
- Every shifter path in the HTML report has a cell with the right voltage range.
Command Checks & Actions
analyze_mv_feasibilityChecks that every power-management strategy can map to a library cell
analyze_mv_feasibility -level_shifter -format htmlWrites the detailed level-shifter feasibility report
create_mv_cellsInserts the cells once the report is clean
check_mv_designChecks the result for remaining multivoltage violations
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
analyze_mv_feasibility(ICC2) reports no UPF-909, andcreate_mv_cells(ICC2) inserts a cell for every strategy. - Suspicious (illustrative): ISO_IRQ on cop_irq fails with data inversion mismatch (1/1): no library cell gives clamp 1 with an active-high enable.
- Hard stop: After compile, every candidate cell for a retention strategy fails with purpose mismatch, so no retention cell can be mapped.
Common Mistake
The Trap: Treating UPF-909 as a warning because the UPF itself loaded cleanly.
- The strategy is legal UPF with no library cell behind it, so insertion cannot honour it and the crossing stays unprotected until someone reads the report.
What The Interviewer Is Testing
- Whether you check library coverage of the power intent before implementation.
- Whether you can turn a mapping-failure reason into a concrete fix.
Follow-up Question & Model Response
"A strategy asks for clamp 1 with an active-high enable, and the report says data inversion mismatch. What do you do?"
Candidate Model Response: The library has no isolation cell whose function matches that clamp and sense pair. Check whether a clamp-1 cell exists with the other enable polarity. If it does, flip the isolation sense in the strategy and drive the enable with that polarity from the controller. If not, request the cell, or change the clamp only if the receiver really allows it.
Practical Example
Design Scenario: (illustrative) After load_upf (ICC2) on MYCHIP, analyze_mv_feasibility (ICC2) issues UPF-909. ISO_IRQ on cop_irq needs clamp 1 with ISE active high, and the only candidates are AND-style clamp-0 cells, so it fails with data inversion mismatch. The team adds ISO_OR_X1 (an illustrative name) to the library, reruns, and the report is clean before create_mv_cells (ICC2).
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.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising