What does `create_mv_cells` insert, and where does it sit in the flow?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
create_mv_cells (ICC2) inserts power management cells from the UPF strategies: isolation cells, level shifters and repeaters, and with its own options retention cells and always-on legalization of buffers. It runs after load_upf (ICC2) and before placement, and it is optional because synthesis normally inserts these cells, but it gives early feedback on whether the power intent is feasible. The flow then continues with check_mv_design (ICC2), placement and optimization, and save_upf (ICC2).
Technical Explanation
- What it inserts:
-isolation,-level_shifter,-repeater,-retentioneach insert that cell type from the matching strategy. -allinserts repeaters, isolation and level shifters and remaps single-rail cells in always-on blocks; it does not cover retention.-always_onruns only always-on legalization of buffers and inverters; pair it with-level_shifterto fix voltage violations together.- Mapped or GTECH: the MV UG says mapped cells go in only if every instance is mapped (Tool Commands says GTECH by default);
-mappedforces library cells or errors out. - It also commits the UPF, traces MV cells to drivers and loads, and puts dont_touch on nets between MV cells and domain boundaries.
- Messages MV-054 count inserted cells and MV-021 counts isolation cells associated with strategies.
- Skipping it is fine if synthesis already inserted everything, but a missing strategy then surfaces only at
check_mv_design(ICC2).
# [ICC2] icc2_shell
load_upf design.upf
create_mv_cells -all
create_mv_cells -retention
check_mv_design
place_opt
save_upf mychip_prime.upfWhat To Check
- MV-054 counts match the expected number of isolation, level shifter and repeater cells from the strategies.
- Every inserted isolation cell is associated with a strategy (MV-021 count equals the insert count).
- No GTECH power management cells remain when the design is fully mapped.
check_mv_design(ICC2) is clean before placement starts.
Command Checks & Actions
load_upf design.upfReads the power intent into the design.
create_mv_cells -allInserts repeater, isolation and level shifter cells from the strategies.
create_mv_cells -retentionInserts retention cells from the retention strategies.
check_mv_designChecks electrical correctness before placement.
save_upf mychip_prime.upfWrites user and tool-derived UPF for the UPF prime flow.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): MV-054 reports 51 isolation and 30 level shifter cells, MV-021 reports 51 associated, and
check_mv_design(ICC2) is clean. - Suspicious (illustrative): Counts are right but some cells are GTECH because a few instances are still unmapped; rerun after mapping or use
-mapped. - Hard stop:
create_mv_cells -mapped(ICC2) errors because no suitable library cell exists for a strategy, or isolation cells are inserted but not associated.
Common Mistake
The Trap: Running create_mv_cells -all (ICC2) and assuming retention registers were handled.
-allcovers repeaters, isolation and level shifters only; retention needs-retentionor the synthesis flow.- PD_COP registers stay plain flops, and state is lost on the first power-down.
What The Interviewer Is Testing
- Knows what
create_mv_cells(ICC2) inserts and which option covers which cell type. - Places it correctly between
load_upf(ICC2) and placement. - Reads the MV-054 and MV-021 counts as a sanity check.
Follow-up Question & Model Response
"Which save_upf (ICC2) form do you use at the end?"
Candidate Model Response: It depends on the UPF flow. In the traditional UPF prime flow, save_upf (ICC2) with a file name writes a full UPF that merges your commands with tool-derived ones. In the golden UPF flow you write only the supplemental part with save_upf -format supplemental (ICC2) and keep the original golden UPF untouched. Mixing the two flows in one project leaves nobody sure which file is the real intent.
Practical Example
Design Scenario: (guide-style counts) MYCHIP after load_upf (ICC2): PD_COP has one isolation strategy on its outputs, PD_CPU at 0.9 V drives PD_MYCHIP at 1.0 V through a low-to-high strategy, and PD_COP has a retention strategy. create_mv_cells -all (ICC2) reports 20 repeaters, 51 isolation cells (51 associated, MV-021) and 30 level shifters (MV-054). create_mv_cells -retention (ICC2) then maps 1,200 PD_COP flops to retention cells. check_mv_design (ICC2) is clean, placement runs, and save_upf mychip_prime.upf (ICC2) captures the derived commands.
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