MMMC (Multi-Mode Multi-Corner) is the industry standard methodology for verifying static timing across every combination of what the chip is doing (operational mode) and what condition the silicon is in (physical PVT and RC corner). You sign off a chip only once every single combination passes timing cleanly.
A mode is what the chip is doing at a given moment — functional execution, scan shift, scan capture, memory BIST, or low-power standby — on the exact same physical netlist. Nothing about the silicon changes between modes; only which clocks are toggling, which control pins are pinned to constants, and which timing constraints apply.
Mode answers "what is the chip doing?" Corner answers "under what physical conditions?" They are two completely independent, orthogonal axes, and an analysis view (or scenario) is what you get when you pick one of each.
A constraint mode is a named container that bundles together everything SDC-related for one behavioral mode — clock definitions, I/O delays, case analysis values, and timing exceptions — so the tool can reference that mode's constraints as a single reusable object.
Different operating modes require mutually exclusive case analysis values on the same control pins, conflicting clock relationships, and mode-specific exceptions. Packing all of that into one giant monolithic SDC produces contradictory constraints, unroutable paths, and false path leakage.
PVT stands for Process, Voltage, and Temperature — the three physical variables that govern transistor switching speed in manufactured silicon. Worst-case timing signoff must analyze these variables simultaneously across their operating extremes.
A standard cell does not have a single fixed delay because delay depends dynamically on the specific electrical operating conditions it experiences: its PVT corner, its input transition time (input slew), and the capacitive load on its output pin (C_load).
A timing library (Liberty .lib / compiled .db) is the SPICE-characterized rulebook for every cell in a library at one specific PVT point — specifying its logic function, pin capacitances, propagation delays, output transition tables, sequential timing checks (setup, hold, recovery, removal), and power.
Input slew is the transition time required for an input voltage edge to ramp between logic thresholds (e.g. 10%–90% or 20%–80%). Slower input slew keeps internal transistors in their high-resistance transition region longer, delaying switching and degrading output transition time.
Output load is the total capacitance a cell's output pin must charge or discharge — the sum of all downstream receiver input pin capacitances plus routed wire capacitance. Higher capacitive load requires more time to charge (I = C·dV/dt), directly increasing propagation delay and slowing output slew.
Parasitics are the unintended electrical properties inherent in physical metal wires: series resistance (R), ground capacitance (C_gnd), and lateral coupling capacitance to neighboring signal wires (C_c). They convert ideal schematic connections into distributed RC delay networks.
A routed wire has distributed resistance and capacitance that scale delay quadratically (t ∝ L²) for unbuffered lines, degrades signal transition times like a low-pass filter, adds via resistance, and exposes signals to crosstalk noise from adjacent switching neighbors.
SPEF (Standard Parasitic Exchange Format, IEEE 1481) is the standard ASCII file format that transfers extracted wire resistance, ground capacitance, and cross-coupling capacitance from physical extraction tools (StarRC, Quantus) into STA engines (PrimeTime, Tempus).
An RC corner is a physical interconnect extraction condition modeling the manufacturing variations in metal wire thickness, width, and inter-wire spacing (CMP polishing, etching tolerances), independent of transistor process variations.
A library set is a named bundle of timing libraries (.lib files) representing all standard cells, memory macros, IO pads, and analog IP characterized at the exact same PVT condition, ensuring electrical consistency across the entire design.
A delay corner is the binding of a library set (cell timing physics) with an RC corner (wire parasitic physics), providing the complete physical data required to calculate cell and interconnect delays along a timing path.
No. A delay corner is purely physical data (library set + RC corner). It only becomes a setup view or a hold view when paired with a constraint mode and explicitly activated for that check type via tool commands.
An analysis view (called a "scenario" in Synopsys tools) is the complete unit of static timing analysis — binding one constraint mode (logical intent) to one delay corner (physical environment) to form a timing graph against which slack is computed.
Setup timing is a maximum-delay check verifying that data arrives before the next clock edge (N+1). Hold timing is a minimum-delay check verifying that data remains stable long enough not to corrupt data captured on the current clock edge (N).
An MMMC timing run requires five core file types: the gate-level netlist (.v), characterized Liberty timing libraries (.lib/.db) for all PVT corners, mode-specific SDC constraint files, extracted parasitic files (SPEF) for all RC corners, and an MMMC configuration script (.tcl).