ExpertQuestion 42 of 50Source: Synopsys IC Compiler II Multivoltage User Guide: Setting Up Operating Conditions, Reporting PVT Libraries, Resolving Multivoltage and PVT Violations

What are PVT mismatches on multivoltage cells, and how do you fix them?

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

Short Answer

A PVT mismatch means a cell is linked to a library pane whose process, voltage or temperature does not match the operating condition of the supplies it sits on, such as a level shifter characterized at 1.0 V in and out sitting on a 0.9 V input rail. ICC2 picks power management cells by the rule in opt.common.pvt_setting (ICC2); report_pvt (ICC2) marks which of P, V or T is off, and fix_mv_design -verbose (ICC2) reports PVT violations on buffers, inverters, tie cells and diodes.

Technical Reference DiagramWhat are PVT mismatches on multivoltage cells, and how do you fix them?
Table with columns cell, domain, supply voltage and linked library voltage: an isolation cell in PD_MYCHIP at 1.0 V on a 1.0 V pane (match), and level shifters in PD_CPU with VDD0p9 input on a 1.0 V/1.0 V pane marked red as a voltage mismatch; a side legend lists the ICC2 closest_match order from all-PVT exact down to all mismatched.

Technical Explanation

  • Default rule: voltage_range_match, where each supply's set_voltage (ICC2) value must fall inside the library cell's minimum and maximum voltage for each corner.
  • Stricter modes: exact_match needs process label, process number, rail voltage and temperature to match; range_match checks voltage and temperature ranges.
  • closest_match order: all PVT exact, process label, process number, voltage exact, voltage range, temperature exact, temperature range, then all mismatched.
  • Per cell type: append =ls, =iso, =els, =ret or =buf; opt.common.pvt_setting (ICC2) overrides the older allow_incorrect_pvt and prefer_exact_pvt options.
  • Tolerating it: opt.common.allow_incorrect_pvt (ICC2), default none, lets optimization use multivoltage library cells with incorrect PVT.
  • What breaks: delay, power and switching thresholds for that cell come from the wrong operating point, so signoff numbers no longer describe silicon.
# [ICC2]  icc2_shell
report_pvt
set_app_options -name opt.common.pvt_setting -value "exact_match=ls, range_match=iso"
analyze_mv_feasibility -level_shifter -format html
fix_mv_design -verbose

What To Check

  • report_pvt per corner: no mismatch mark on P, V or T for any library used by multivoltage cells.
  • Each supply's set_voltage value per corner matches the pane its cells link to.
  • Level shifters link to panes characterized for both their input and output rails.
  • Any allow_incorrect_pvt setting is documented and removed before signoff.

Command Checks & Actions

ICC2 (icc2_shell)report_pvt

Show P, V and T per library for a corner, with mismatches marked

ICC2 (icc2_shell)set_app_options -name opt.common.pvt_setting -value "exact_match=ls, range_match=iso"

Require exact PVT for level shifters and range matching for isolation cells

ICC2 (icc2_shell)analyze_mv_feasibility -level_shifter -format html

List level-shifter mapping failures and their reasons

ICC2 (icc2_shell)fix_mv_design -verbose

Report and fix multivoltage and PVT violations on buffers, inverters, tie cells and diodes

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): report_pvt shows no mismatch marks at either corner, and fix_mv_design -verbose reports no PVT violations.
  • Suspicious (illustrative): report_pvt marks only the process number (1.1 set, 1 effective) on one library while V and T match.
  • Hard stop: Level shifters in PD_CPU link to a 1.0 V-only pane while VDD0p9 is set to 0.9 V at every corner.

Common Mistake

The Trap: Setting allow_incorrect_pvt to silence the mismatch and moving on.

  • Level shifters and isolation cells stay linked to the wrong voltage, and their timing, power and noise are computed at an operating point the chip never runs.

What The Interviewer Is Testing

  • Do you know how ICC2 matches operating conditions and in which order it falls back?
  • Can you tell when tolerating a mismatch is acceptable and when it is not?

Follow-up Question & Model Response

"When is it acceptable to allow a PVT mismatch?"

Candidate Model Response: Early in the flow, when the final libraries are not released and you only need placement and rough timing to keep moving. It can also be tolerated for a cell whose behaviour barely depends on the mismatched parameter, if the library owner agrees in writing. It is never acceptable at timing or power signoff, because every number from that cell comes from the wrong operating point. Keep the setting in one clearly named script so it cannot leak into the signoff run.

Practical Example

Design Scenario: (illustrative) In MYCHIP, level shifters on PD_CPU outputs take VDD0p9 in and VDD1p0 out. The link library for LS_LH_X1 (an illustrative cell name) has only a 1.0 V/1.0 V pane, so no pane matches VDD0p9 and report_pvt marks V for that library. Adding the 0.9 V/1.0 V pane to the link libraries and setting exact_match=ls relinks the level shifters, and report_pvt comes back clean. The level-shifter delay on the CPU path moves from 42 ps to 55 ps, which is the number that should have been signed off.

Low-Power & UPF Handbook

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

MMMC Timing Signoff Guide — ten chaptersMMMC GuideTen chapters on modes, corners, and scenario setup. →