IntermediateQuestion 56 of 60Source: IEEE Std 1801-2015: use_interface_cell; Synopsys IC Compiler II Multivoltage User Guide: Using Specific Library Cells With Isolation and Level-Shifter Strategies

How do you force a specific library cell for an isolation or level-shifter strategy?

From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide

Short Answer

Use use_interface_cell (UPF) to tie an isolation strategy, a level-shifter strategy, or one of each to the library cells you list. It is the only mapping command that can map a combined cell such as an enable level shifter, and in ICC2 it wins over map_isolation_cell (UPF) and map_level_shifter_cell (UPF) on the same strategy. Then check with report_mv_lib_cells (ICC2) that the forced cell really has the attributes the strategy needs.

Technical Reference DiagramHow do you force a specific library cell for an isolation or level-shifter strategy?
Flow: strategies ISO_GPU and LS_GPU on PD_GPU outputs, candidate cells ISO_AND_X1, LS_LH_X1 and ELS_LH_AND_X2, use_interface_cell (UPF) selecting ELS_LH_AND_X2 with map_isolation_cell (UPF) shown overridden, and the chosen cell between PD_GPU at 0.75 V (hatched) and PD_AON at 0.9 V (solid tint).

Technical Explanation

  • Default mapping: with no mapping command, ICC2 picks any suitable isolation or level-shifter cell in the library for each strategy.
  • Why force a cell: a combined enable level shifter for a crossing that needs both functions, a preferred drive strength, or a cell qualified for that voltage pair.
  • Scope: use_interface_cell (UPF) takes at most one isolation and one level-shifter strategy, and can map combined cells the older map commands cannot.
  • Priority: when both use_interface_cell (UPF) and an older map command target the same strategy, use_interface_cell (UPF) wins.
  • Existing cells: instantiated isolation cells tied to the strategy are remapped unless dont_touch; level-shifter mapping restricts the choice but never forces insertion.
  • Validity: each listed cell must model the strategy function in Liberty or a define command; if none does, it is an error unless -force_function is used.
  • What breaks: if every listed cell is invalid, the default policy drops the strategy with UPF-108, and that crossing gets no cells.
# [UPF]  design.upf
set_isolation ISO_GPU -domain PD_GPU -applies_to outputs -isolation_supply SS_AON -clamp_value 0 -isolation_signal U_PMU/iso_gpu -isolation_sense high -location parent
set_level_shifter LS_GPU -domain PD_GPU -applies_to outputs -rule low_to_high -location parent
use_interface_cell ELS_GPU -strategy {ISO_GPU LS_GPU} -domain PD_GPU -lib_cells {ELS_LH_AND_X2}
# older isolation-only form, still accepted by ICC2; loses to use_interface_cell here
map_isolation_cell ISO_GPU -domain PD_GPU -lib_cells {ISO_AND_X1}
# [ICC2]  icc2_shell
report_mv_lib_cells -verbose
create_mv_cells
check_mv_design

What To Check

  • report_mv_lib_cells -verbose (ICC2) shows the forced cell with the PG pins and pin functions the strategies need.
  • The load log shows no UPF-108 for any mapped strategy.
  • Inserted cells on PD_GPU outputs are the forced ELS, not a fallback pair.
  • No dont_touch isolation cell still uses a cell you meant to replace.

Command Checks & Actions

UPF (design.upf)use_interface_cell ELS_GPU -strategy {ISO_GPU LS_GPU} -domain PD_GPU -lib_cells {ELS_LH_AND_X2}

Map one isolation and one level-shifter strategy to a combined cell

UPF (design.upf)map_isolation_cell ISO_GPU -domain PD_GPU -lib_cells {ISO_AND_X1}

Older isolation-only mapping; loses to use_interface_cell on the same strategy

ICC2 (icc2_shell)report_mv_lib_cells -verbose

Show PG pins, pin functions and MV type of library cells

ICC2 (icc2_shell)check_mv_design

Check inserted cells against the strategies and supplies

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): All 256 PD_GPU outputs get ELS_LH_AND_X2, one cell per crossing instead of an isolation cell plus a shifter.
  • Suspicious (illustrative): Some outputs still get ISO_AND_X1 plus a separate shifter: the mapping did not reach every element, so check the element lists.
  • Hard stop: UPF-108 reports the strategy dropped because the listed cell is invalid: those outputs have no isolation at all.

Common Mistake

The Trap: Listing a library cell whose Liberty model lacks the isolation or level-shifter attributes the strategy needs.

  • The mapping is rejected and, under the default policy, the strategy is dropped with UPF-108, so the crossing ships unprotected unless someone reads the log.

What The Interviewer Is Testing

  • Do you know which mapping command wins when two target the same strategy?
  • Can you explain why a combined enable level shifter needs use_interface_cell?

Follow-up Question & Model Response

"Why not just set dont_use on every other isolation cell instead of mapping?"

Candidate Model Response: A dont_use setting is global, so it removes those cells from every strategy and domain that could have used them. Mapping is per strategy, so PD_GPU gets the enable level shifter while other domains keep their normal choices. It also records the choice in the UPF, where a reviewer looks for it. Use dont_use for cells nobody should ever get, and mapping for a local preference.

Practical Example

Design Scenario: (illustrative) PD_GPU at 0.75 V drives PD_AON at 0.9 V through 256 outputs that need both isolation and low-to-high shifting. Default mapping inserts ISO_AND_X1 plus LS_LH_X1 on each, 512 cells in all. use_interface_cell ELS_GPU -strategy {ISO_GPU LS_GPU} -domain PD_GPU -lib_cells {ELS_LH_AND_X2} (UPF) replaces each pair with one enable level shifter, saving about 30 ps per crossing and a quarter of the area. Cell names and savings are illustrative.

Low-Power & UPF Handbook

Read the complete low-power guide library covering power domains, level shifters, isolation clamps, state retention, and UPF signoff verification.

Low-Power VLSI & UPF Handbook — nine chaptersLow-Power & UPFDomains, isolation, retention, and multivoltage UPF. →